Символ формата строки Python для __ unicode __?

Во-первых, есть ли один?

В противном случае есть ли хороший способ вызвать что-то как

print '%s' % obj

звонить obj.__unicode__ вместо obj.__str__?

5
задан mpen 24 June 2010 в 04:25
поделиться

3 ответа

Просто используйте строку формата Unicode вместо того, чтобы иметь строку байтов в этой роли:

>>> class X(object):
...   def __str__(self): return 'str'
...   def __unicode__(self): return u'unicode'
... 
>>> x = X()
>>> print u'%s' % x
unicode
4
ответ дан 14 December 2019 в 18:58
поделиться

Во-первых, есть ли он?

Конечно (вроде того). Строка формата unicode преобразует значения формата в unicode, подразумевая, что obj.__unicode__ будет вызван (reference).

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

Помимо вышесказанного, нет особых причин, по которым вы не могли бы быть явными:

print '%s' % (unicode(obj))
0
ответ дан 14 December 2019 в 18:58
поделиться

Нет. В этом не было бы смысла.

print (u "% s"% obj) .encode (some_encoding) будет использовать obj .__ unicode __ .

1
ответ дан 14 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: