Alex Martelli wrote: > Maybe somebody assigning a value to True or False is a > common error, but much of my livelihood over the last 10 years has been > about mentoring/coaching programmers in Python, and that's one error I > have *NEVER* observed, so I'd need a lot of empirical evidence to > convince me it's worth adding two more reserved words to Python's > reasonably short list (I feel much the same way about None, by the way). > pychecker, pylint, and friends, are a much better way to detect and warn > about all sort of anomalies of this kind.
Yes, I admit that it was a very stupid mistake. (Though I'm not even sure that this is what happened. Next time I should probably sleep on it, and try it again the next day, to avoid posting such a stupid question again.) But note that I was using Python interactively (just experimenting with it). It is very unlikely that someone would write things like True == 2 without any additional context in a real program. (Actually it is unlikely that someone would write this in any circumstance in a real program.) But I still think that it is an inconsistency to allow to redefine a _value_ like True or False (not a built-in function that may have been missing in earlier versions). Saying True = 2 is just like saying 3 = 2. Learning about pylint was very useful (thanks for the advice!) -- it helps in catching those kinds of errors that surface only at runtime in Python programs, but are easily caught at compile time in compiled languages. -- http://mail.python.org/mailman/listinfo/python-list