代码之家  ›  专栏  ›  技术社区  ›  mpen

Python字符串格式字符,用于unicode?

  •  5
  • mpen  · 技术社区  · 15 年前

    首先,有吗?

    如果不是的话,有没有一个好的方法来强迫

    print '%s' % obj
    

    打电话 obj.__unicode__ 而不是 obj.__str__

    3 回复  |  直到 15 年前
        1
  •  4
  •   Alex Martelli    15 年前

    只需使用unicode格式的字符串,而不是在该角色中使用字节字符串:

    >>> class X(object):
    ...   def __str__(self): return 'str'
    ...   def __unicode__(self): return u'unicode'
    ... 
    >>> x = X()
    >>> print u'%s' % x
    unicode
    
        2
  •  1
  •   Mike Graham    15 年前

    print (u"%s" % obj).encode(some_encoding) 将使用 obj.__unicode__

        3
  •  0
  •   Seth    15 年前

    首先,有吗?

    当然(有点)。unicode格式字符串将格式值转换为unicode,这意味着 obj.__unicode__ 将被调用( reference ).

    u'this is a %s' % ('unicode string')
    

    除了上面提到的,没有什么特别的原因让你不能明确的说:

    print '%s' % (unicode(obj))