[Python-Dev] __str__ vs. __unicode__

Walter Dörwald walter at livinglogic.de
Wed Jan 19 18:31:25 CET 2005


Nick Coghlan wrote:

> [...]
> I imagine many people are like me, with __str__ being the only one of 
> these hooks they use frequently (Helping out with the Decimal 
> implementation is the only time I can recall using the slots for the 
> numeric types, and I rarely need to deal with Unicode).
> 
> Anyway, they're heavy use suggests to me that __str__ and str() are 
> likely to provide a good model for the desired behaviour - they're the 
> ones that are likely to have been nudged in the most useful direction by 
> bug reports and the like.

+1

__foo__ provides conversion to foo, no matter whether foo is among the
direct or indirect base classes.

Simply moving the PyUnicode_Check() call in PyObject_Unicode() after the
__unicode__ call (after the PyErr_Clear() call) will implement this (but 
does not fix Nick's bug). Running the test suite with this change
reveals no other problems.

Bye,
    Walter Dörwald


More information about the Python-Dev mailing list