__unicode__的Python字符串格式字符?

时间:2010-06-24 04:25:21

标签: python string unicode syntax

首先,有一个吗?

如果没有,是否有一种很好的方式强制像

print '%s' % obj

拨打obj.__unicode__而不是obj.__str__

3 个答案:

答案 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))