
I like c'x'. It's easy to read and very explicitly constant and clear what the value is 'x'. (Some other letter instead of 'c' would be fine as well.) I don't like this:
if bytesdata[i] == 121: # ord('x')
because it looks a heck of a lot like:
if bytesdata[i] == 120: # ord('x')
and only one of those is correct. That's a very easy bug to miss. I like it even less without the comment. I don't care for:
if bytesdata[i] == ord('x'):
because while ord is a builtin, it's not invulnerable to being changed. In contrast, string constants and numbers are truly constant. I recognize that the compiler can optimize:
if bytesdata[i] == b'x'[0]:
but that looks like chicken scratches to me. Someone suggested using 0'x' which I don't quite get. It looks too much like 0x to me and the I've always read the leading zero to mean 'this is a number'. Also, this was raised in the context of bytes and not all characters fit in a byte. So c'Δ' ord('Δ') work but b'Δ'[0] won't. Is there a learning curve? Yes, but minor IMHO and if you don't know it, it's obvious when you see it that you don't know it. --- Bruce Follow me: http://www.twitter.com/Vroo Latest tweet: SO disappointed end of the world didn't happen AGAIN! #y2k<http://twitter.com/#!/search?q=%23y2k> #rapture <http://twitter.com/#!/search?q=%23rapture> Now waiting for 2038! #unixrapture <http://twitter.com/#!/search?q=%23unixrapture>