최근에이 TypeError 예외가 발생하여 디버그하기가 매우 어려웠습니다. 결국 나는 이것을이 작은 테스트 케이스로 줄였습니다.
>>> "{:20}".format(b"hi")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: non-empty format string passed to object.__format__
어쨌든 이것은 나에게 매우 명확하지 않습니다. 내 코드의 해결 방법은 바이트 문자열을 유니 코드로 디코딩하는 것입니다.
>>> "{:20}".format(b"hi".decode("ascii"))
'hi '
이 예외의 의미는 무엇입니까? 더 명확하게 할 수있는 방법이 있습니까?
TypeError
Python 3.4+ 에서만되었으며, 그 과정에서object
정의하지 않고 상속하는 모든 것에 영향을 미칩니다__format__
(예 :None
;class T(object): pass
등).