This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eric.smith
Recipients benjamin.peterson, eric.smith, ezio.melotti, flox, georg.brandl, steven.daprano
Date 2010-04-27.09:27:46
SpamBayes Score 2.5055252e-07
Marked as misclassified No
Message-id <1272360469.68.0.498423288901.issue8128@psf.upfronthosting.co.za>
In-reply-to
Content
I agree with Georg. I think 2.x is arguably correct, and 3.1 is broken.

It looks like this has already been fixed in 3.2. It's not immediately obvious why that is, I'll have to look at the code more than the quick glance I just gave it.

Python 3.1.1+ (release31-maint:77299, Jan  4 2010, 08:27:32) 
[GCC 4.1.2 20070626 (Red Hat 4.1.2-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class MyStr(str):
...     def __str__(self): return "Surprise!"
... 
>>> '%s' % MyStr('foo')
'foo'
>>> '{}'.format(MyStr('foo'))
'Surprise!'

Python 3.2a0 (py3k:80525M, Apr 27 2010, 05:19:53) 
[GCC 4.1.2 20070626 (Red Hat 4.1.2-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class MyStr(str):
...     def __str__(self): return "Surprise!"
... 
>>> '%s' % MyStr('foo')
'Surprise!'
>>> '{}'.format(MyStr('foo'))
'Surprise!'
History
Date User Action Args
2010-04-27 09:27:49eric.smithsetrecipients: + eric.smith, georg.brandl, benjamin.peterson, ezio.melotti, steven.daprano, flox
2010-04-27 09:27:49eric.smithsetmessageid: <1272360469.68.0.498423288901.issue8128@psf.upfronthosting.co.za>
2010-04-27 09:27:46eric.smithlinkissue8128 messages
2010-04-27 09:27:46eric.smithcreate