Todd wrote:
The overall issue is that python has no way of knowing if the keyword is being used for legitimate backwards-compatibility purposes or someone intentionally overrode after it was made a keyword because they somehow thought it was a good idea. That is why being explicit about overriding the keyword is so important.
The trouble with explicitly overriding keywords is that it still requires old code to be changed whenever a new keyword is added, which as far as I can see almost competely defeats the purpose. If e.g. you need to change all uses of given to \given in order for your code to keep working in Python 3.x for some x, you might just as well change it to given_ or some other already-legal name. The only remotely legitimate use I can think of is for calling APIs that come from a different language, but the same thing applies there -- names in the Python binding can always be modified somehow to make them legal. As far as I can see, any mechanism allowing keywords to be used as names has to be completely transparent to existing code, otherwise there's no point in it. -- Greg _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/