前段时间我问了一个问题,很多人建议我将__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的编程方式?
答案 0 :(得分:8)
__str__()
是str()
调用的挂钩方法(如果存在)。如果没有定义这样的方法,str()
函数将回退到合理的默认值。钩子可以覆盖默认行为,你不应该假设它们总是被实现。
此外,只使用str()
callable更具可读性。
答案 1 :(得分:4)
键入较少,代码更容易阅读。