Risposta al messaggio di Chris Angelico :

Your __str__ method is not returning a string. It's returning a
Unicode object. Under Python 2 (which you're obviously using, since
you use print as a statement), strings are bytes. The best thing to do
would be to move to Python 3.3, in which the default string type is
Unicode, and there's a separate 'bytes' type for communicating with
file systems and networks and such. But if that's not possible, I
would recommend having a separate method for returning a Unicode
string (the same as your current __str__ but with a different name),
and have __str__ call that and encode it - something like this:

def describe(self):
     return u'msgid: "%s"\nmsgstr: "%s"' %(self.msgid, self.msgstr)
def __str__(self):
     return self.describe().encode(self._encoding)

But it'd definitely be better to move to Python 3.


Thanks, now I have understood.
I have problem with the installer of the Python 3.3 (and 2.7.3), when I fix these problem I'll try to update to Python 3.3.

Sandro


--
*Antivirus aggiornato: e siamo sicuri che basti? * - http://bit.ly/SXuDAc
Sto ascoltando: *Robert Plant – One More Cup of Coffee (Valley Below) * - http://bit.ly/TtyHMq
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to