Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 2, 2009 10:44:08

gimp
От:
Зарегистрирован: 2009-05-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматный вывод в классе не работает с юникодом?

тестовый класс 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 монет
кто нибудь сталкивался с таким поведением?
Как это исправить?



Офлайн

#2 Дек. 2, 2009 10:54:46

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматный вывод в классе не работает с юникодом?

Использовать __unicode__ вместо __str__ ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version