Python __str__与__unicode__

问题:

当你应该实现__str__()__unicode__()时,是否有一个python约定。我看过班比__str__()更频繁地覆盖__unicode__(),但似乎并不一致。有没有具体的规则,当更好地实施一个对另一个?实施两者是否必要/良好做法?

回答:

 __str__()是旧方法 – 它返回字节。 __unicode__()是新的首选方法 – 它返回字符。这些名字有点混乱,但在2.x中,由于兼容性原因,我们被困在他们身上。一般来说,您应该将所有的字符串格式设置为__unicode__(),并创建一个存根__str__()方法:

def __str__(self):
    return unicode(self).encode('utf-8')

在3.0中,str包含字符,所以相同的方法被命名为__bytes__()__str__()。这些行为与预期的一样。

 
 Code问答: codewenda.com
Stackoverflow:Python __str__ versus __unicode__

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 4 = 3