% r을 튜플과 함께 사용할 때 왜 다음과 같은 오류가 발생하는지 설명 할 수 있습니까?% r을 튜플과 함께 사용할 때 "모든 인수가 변환되지 않았습니다"라는 메시지가 나타나는 이유는 무엇입니까?
>>> repr((1,2))
'(1, 2)'
>>> class Foo(object):
... def __init__(self,vals):
... self.vals=vals
... def __repr__(self):
... return "Foo(%r)" % self.vals
...
>>> foo = Foo((1,2))
>>> foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in __repr__
TypeError: not all arguments converted during string formatting
__repr__
을 인쇄하는 적절한 방법은 무엇입니까? 대신 %s
과 repr(self.vals)
을 사용해야합니까?
'% s'을 사용할 때 일어나는 일에 대해 쉽게 확인할 수 있습니다. 어떻게 물어보기 위해 여기에 왔어야한다고 생각하니? –
@InbarRose :'%'문자열 형식 지정 연산자에 익숙하지 않은 사람에게는 예상치 못한 동작입니다. –
@Inbar "튜플과 함께 % r을 사용할 때 왜 다음과 같은 오류가 발생하는지 설명 할 수 있습니까?" 나는이 질문을 한 이유 다. 왜 오류가 발생했는지 이해하고 가장 적절한 (Pythonic) 방법을 이해하는 데 관심이 있습니다. – Tim