[Python-Dev] unicode and __str__
Neil Schemenauer
nas at arctrix.com
Tue Aug 31 20:41:16 CEST 2004
On Tue, Aug 31, 2004 at 10:23:33AM +0200, M.-A. Lemburg wrote:
> __str__ is indeed allowed to return Unicode objects
> (and has been for quite a while).
[...]
> Now back to your original question: the change you see
> in %-formatting was actually a bug fix. Python 2.3 should
> have exposed the same behavior as 2.4 does now.
I think the note in NEWS is not quite accurate. It says:
Let u'%s' % obj try obj.__unicode__() first and fallback to
obj.__str__().
The change in PyUnicode_Join replaces a PyObject_Str() call with
PyObject_Unicode(). That means that this works in 2.4:
class A:
def __str__(self):
return u'\u1234'
u'%s' % A()
Perhaps that is unintentional but it seems cleaner to me than adding
a __unicode__ method and not providing a __str__ method.
Neil
More information about the Python-Dev
mailing list