Josh Rosenberg added the comment:

I would think the argument for deprecation is that usually, people type 
bytes(7) or bytes(somesmallintvalue) expecting to create a length one bytes 
object using that value (happens by accident if you iterate a bytes object and 
forget it's an iterable of ints, not an iterable of len 1 bytes). It's really 
easy to forget to make it bytes([7]) or bytes((7,)) or what have you. If you 
make the same mistake with str, list, tuple, etc., you get an error, because 
they only accept iterables. But bytes silently behaves in a way that is 
inconsistent with the other sequence types.

Given that b'\0' * 7 is usually faster in any event (by avoiding lookup costs 
to find the bytes constructor) and more intuitive to people familiar with the 
Python sequence idiom, I could definitely see this as a redundancy that does 
nothing but confuse.

----------
nosy: +josh.rosenberg

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20895>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to