[Python-Dev] Making None a keyword
Guido van Rossum
guido@python.org
Fri, 26 Apr 2002 08:10:24 -0400
> > I'd like to make None a keyword. This prevents dumb users from
> > assigning to it and screwing themselves, and can cause a slight
> > speedup because using None avoids two dict lookups.
> >
> > - Any objections?
>
> +1 but only if you use the standard mechanism for this:
> warnings in 2.3, SyntaxError in 2.4.
Good point.
> > - Can somebody help me implement this? I've got the parser changes
> > ready, but not the compiler changes.
> >
> > Believe it or not, Zope3 contains code that will break with this
> > change: there are functions with a default argument of the form
> > None=None as a speedup hack. I think this is an argument *for* the
> > change. :-)
>
> Zope3 is not the only software using these kind of hacks
> to work around the builtins lookups.
I just realized there's another use for None as an identifier that
is currently totally legal and which would become illegal: it's
conceivable that someone would use None as an attribute name, e.g.
class C:
def None(self): pass
C().None()
--Guido van Rossum (home page: http://www.python.org/~guido/)