[EMAIL PROTECTED] > I just read in the 'What's New in Python 2.4' document that the None > data type was converted to a constant: > http://python.org/doc/2.4/whatsnew/node15.html > > """ > # None is now a constant; code that binds a new value to the name > "None" is now a syntax error. > """ > > So, what's the implications of this?
No implications, for any sane code. You can no longer do things like this: >>> None = 2 SyntaxError: assignment to None That's all. > I find the lack of explanation a little puzzling, since I've written code that > compares a variable's type with the 'None' type. For example, a variable > would be initialized to 'None' and if it went through a loop unchanged, I > could > determine this at the end by using a conditional type(var) == type(None). Python's None is a singleton, meaning that there is a single, unique instance of type type(None). So in the case you describe, it's correct, and idiomatic, to test if var is None: instead. Checking type(var) against type(None) will still work, but was never the best way to do it. If you have an expression like var = None that's fine. You're not changing the binding of name "None" there, you're changing the binding of name "var". > What will type(None) return now? That hasn't changed: >>> type(None) <type 'NoneType'> -- http://mail.python.org/mailman/listinfo/python-list