[Python-ideas] Crazy idea: allow keywords as names in certain positions

Rob Cliffe rob.cliffe at btinternet.com
Sun May 13 22:38:21 EDT 2018

On 14/05/2018 02:28, Greg Ewing wrote:
> Rob Cliffe via Python-ideas wrote:
>>     def and(x, y):
>>         return ...
>> #   and(1,2)           #  Oops, SyntaxError.  Oh, I know:
>>     globals()['and'](1,2)    # Works!
> If the rule I proposed for "import" were extended to "def"
> then and(1,2) would work. The usual way of using "and" would
> no longer work in that module, but this just goes to show
> that redefining "and" is a silly thing to do in the first
> place.
> Redefining the existing keywords could perhaps be forbidden
> if you really want to protect people from shooting themselves
> in the kidneys this particular way.
If you forbid redefining keywords, you remove the whole point of this 
proposal: to allow keywords to be sometimes used as bona fide keywords, 
sometimes as identifiers.

I really do not intend to give offence (I know that that's 
counter-productive).  But I have formed a very strong opinion - which of 
course may be wrong, and certainly won't be universally shared - and I 
am honestly expressing that opinion: Nothing I have seen in this thread 
so far has persuaded me that this proposal has any merit.

More information about the Python-ideas mailing list