__str__()当你应该实现vs时是否有 python 约定__unicode__()?我看到类覆盖__unicode__()的频率高于__str__()但它似乎并不一致。是否有具体的规则,什么时候实施一个比另一个更好?两者都有必要/良好的做法吗?
__str__()
__unicode__()
__str__()是旧方法——它返回字节。__unicode__()是新的首选方法——它返回字符。这些名称有点令人困惑,但在 2.x 中,出于兼容性原因,我们坚持使用它们。通常,您应该将所有字符串格式放入 中__unicode__(),并创建一个存根__str__()方法:
def __str__(self): return unicode(self).encode('utf-8')
在 3.0 中,str包含字符,因此将相同的方法命名为__bytes__()和__str__()。这些行为符合预期。
str
__bytes__()