Найти - Пользователи
Полная версия: Форматный вывод в классе не работает с юникодом?
Начало » Python для новичков » Форматный вывод в классе не работает с юникодом?
1
gimp
тестовый класс tt.py
его необходимо заставить возвращать строку в юникоде
# -*- coding: utf-8 -*-
# file:tt.py
class Test():
def __str__(self):
return u'%.2f монет'%500
вот только это выдает ошибки:
>>> import tt
>>> t=tt.Test()
>>> print t
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-11: ordinal not in range(128)
тот же самый класс, только убран признак юникода:
>>> import tt
>>> t=tt.Test()
>>> str(t)
'500.00 \xd0\xbc\xd0\xbe\xd0\xbd\xd0\xb5\xd1\x82'
>>> print t
500.00 монет
кто нибудь сталкивался с таким поведением?
Как это исправить?
Viper
Использовать __unicode__ вместо __str__ ?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB