おそろしや
class Surprise(object):
def __str__(self):
return "[str]"
def __unicode__(self):
return u"[unicode]"
surprise = Surprise()
print "%s %s %s" % (surprise, u"foo", surprise)
出力:
[str] foo [unicode]
つまり、途中でUnicodeが来ると、それ以降は__unicode__が呼ばれるようになるわけです。
ちなみにPython2.3なら
出力:
[str] foo [str]
となります。
0 件のコメント:
コメントを投稿