小编Man*_*hna的帖子

如果 t.__str__() 返回非字符串,为什么 print(t) 错误,而不是 print(t.__str__()) ?

我试图理解__str__Python 中的方法。

class Test:
    def __str__(self):
        return 5

t = Test()

print(t.__str__())
Run Code Online (Sandbox Code Playgroud)

在此方法中,它返回一个整数值,但打印方法能够打印它。

但是,当我尝试时,print(t)它抛出了错误 TypeError: __str__ returned non-string (type int)

据我了解print(t),也在调用该__str__(self)方法。

为什么不print(t.__str__())想要字符串类型转换?

python type-conversion typeerror magic-methods

30
推荐指数
3
解决办法
1967
查看次数