[Python-Dev] unicode and str (original) (raw)

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