Steven D'Aprano wrote:
str(b'123') # b prefix is added
"b'123'"
Perhaps I'm misinterpreting it, but from here it looks to me that str()
is doing what repr() used to do, and I'm really not sure that's a good
thing. I would have expected that str(b'123') in Python 3 should do the
same thing as unicode('123') does now:
No, you are getting it right and yes, it's problematic. Guido wanted
str(b'') to succeed. But the behavior can easily mask bugs in code.
Therefor a byte warning mode was implemented.
$ ./python -b
>>> str(b'123')
__main__:1: BytesWarning: str() on a bytes instance
"b'123'"
$ ./python -bb
>>> str(b'123')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
BytesWarning: str() on a bytes instance
>>> b'' == ''
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
BytesWarning: Comparison between bytes and string
--
http://mail.python.org/mailman/listinfo/python-list