为什么使用str()比__str __()好

时间:2012-12-11 22:54:45

标签: python

前段时间我问了一个问题,很多人建议我将__str__()更改为str(some object)

例如:

e_address   = f_name+l_name+year.__str__()+day.__str__()

更改为:

e_address   = f_name+l_name+str(year)+str(day)

所以我的问题是为什么它更好?是否有任何性能差异,或者它是更加pythonic的编程方式?

2 个答案:

答案 0 :(得分:8)

__str__()str()调用的挂钩方法(如果存在)。如果没有定义这样的方法,str()函数将回退到合理的默认值。钩子可以覆盖默认行为,你不应该假设它们总是被实现。

此外,只使用str() callable更具可读性。

答案 1 :(得分:4)

键入较少,代码更容易阅读。