首先,有一个吗?
如果没有,是否有一种很好的方式强制像
print '%s' % obj
拨打obj.__unicode__
而不是obj.__str__
?
答案 0 :(得分:4)
只需使用unicode格式字符串,而不是在该角色中使用字节字符串:
>>> class X(object):
... def __str__(self): return 'str'
... def __unicode__(self): return u'unicode'
...
>>> x = X()
>>> print u'%s' % x
unicode
答案 1 :(得分:1)
没有。事实并非如此。
print (u"%s" % obj).encode(some_encoding)
将使用obj.__unicode__
。
答案 2 :(得分:0)
首先,有一个吗?
当然(有点)。 unicode格式字符串会将格式值转换为unicode,这意味着将调用obj.__unicode__
(reference)。
u'this is a %s' % ('unicode string')
除此之外,没有特别理由说明你不能明确:
print '%s' % (unicode(obj))