Andrew Koenig wrote:
Specifically: If I want to write a function that answers a yes/no question, I have lots of possible ways of spelling yes (1, 2, "yes", and so on) and lots of possible ways of spelling no (0, {}, None, and so on). There isn't a single preferred way.
Fredrik Lundh wrote:
if you study real python code, you'll find that there is.
Andrew Koenig wrote:
I mean that the language doesn't prefer a single way, as opposed to programmers' conventions.
This doesn't mean anything in practice. Every yes/no function i've encountered returns 1 for yes and 0 for no. (If it returns something else, then it really has more to say than yes or no.) In fact the language actually does prefer a particular way, since x == x returns 1. The addition of another type really does change the set of preferred truth values from {0, 1} to {0, False, 1, True}. The typical practicing Python programmer who wants to say "true" would have to decide -- for each instance -- whether to say "1" or "True". And the programmer cannot happily ignore the issue and stick to using 0 and 1, because if comparisons start to return True and False, dealing with a mix of four truth values is unavoidable. This PEP makes me uneasy because it causes me to see lots of extra casts in Python's future (not to mention confused beginners). -- ?!ng