Movatterモバイル変換
[0]ホーム
[Python-Dev] Revised PEP 349: Allow str() to return unicode strings
Phillip J. Ebypje at telecommunity.com
Tue Aug 23 17:43:02 CEST 2005
At 09:21 AM 8/23/2005 -0600, Neil Schemenauer wrote:> > then of course, one could change ``unicode.__str__()`` to return> > ``self``, itself, which should work. but then, why so complicated?>>I think that may be the right fix.No, it isn't. Right now str(u"x") coerces the unicode object to a string, so changing this will be backwards-incompatible with any existing programs.I think the new builtin is actually the right way to go for both 2.x and 3.x Pythons. i.e., text() would be a builtin in 2.x, along with a new bytes() type, and in 3.x text() could replace the basestring, str and unicode types.I also think that the text() constructor should have a signature of 'text(ob,encoding="ascii")'. In the default case, strings can be returned by text() as long as they are pure ASCII (making the code str-stable *and* unicode-safe). In the non-default case, a unicode object should always be returned, making the code unicode-safe but not str-stable. Allowing text() to return 8-bit strings would be an obvious violation of its name: it's for text, not bytes.
More information about the Python-Devmailing list
[8]ページ先頭