相关疑难解决方法(0)

len()和.__ len __()之间的区别?

打电话len([1,2,3])[1,2,3].__len__()?之间有什么区别吗?

如果没有明显的差异,在幕后做了哪些不同的事情?

python

84
推荐指数
4
解决办法
6万
查看次数

如果 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
查看次数