Neil Schemenauer <[EMAIL PROTECTED]> writes on Mon, 22 Aug 2005 15:31:42 -0600: > ... > Some code may require that str() returns a str instance. In the > standard library, only one such case has been found so far. The > function email.header_decode() requires a str instance and the > email.Header.decode_header() function tries to ensure this by > calling str() on its argument. The code was fixed by changing > the line "header = str(header)" to: > > if isinstance(header, unicode): > header = header.encode('ascii')
Note, that this is not equivalent to the old "str(header)": "str(header)" used Python's "default encoding" while the new code uses 'ascii'. The new code might be more correct than the old one has been. > ... > Alternative Solutions > > A new built-in function could be added instead of changing str(). > Doing so would introduce virtually no backwards compatibility > problems. However, since the compatibility problems are expected to > rare, changing str() seems preferable to adding a new built-in. Can we get a new builtin with the exact same behaviour as the current "str" which can be used when we do require an "str" (and cannot use a "unicode"). Dieter -- http://mail.python.org/mailman/listinfo/python-list