Greg Ewing wrote: > Ethan Furman wrote: > >> On the one hand we have the 'bytes are ascii data' type interface, and >> on the other we have the 'bytes are a list of integers between 0 - >> 255' interface. > > I think the weird part is that there exists a literal for > writing a byte array as an ascii string, and furthermore > that it's the *only* kind of literal available for bytes. That is the point I was trying to make -- thank you for stating it more clearly than I managed to. :) > Personally I think that the default literal syntax for > bytes, and also the form produced by repr(), should have > been something more neutral, such as hex, Agreed. It is surprising to extract an element out of bytes, and not end up with bytes, but with an int -- if the repr used something besides the plain ascii representation, this would not be an expectation. For comparison, when one extracts an element out of a str one gets a str -- not the int representing the unicode code point. > with the ascii form available for use when it makes sense. > > As for > >> --> some_other_var[3] == b'd' > > there ought to be a literal for specifying an integer > using an ascii character, so you could say something like > > if some_other_var[3] == c'd': > > which would be equivalent to > > if some_other_var[3] == ord(b'd') > > but without the overhead of computing the value each time > at run time. Given that we can't change the behavior of b'abc'[1], that would be better than what we have. +1 ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4