Namespaces in functions vs classes
Ethan Furman
ethan at stoneleaf.us
Tue Apr 19 12:31:39 EDT 2011
Gerald Britton wrote:
> I now understand the Python does
> not consider a class definition as a separate namespace as it does for
> function definitions. That is a helpful understanding.
That is not correct. Classes are separate namespaces -- they just
aren't automatically searched. The only namespaces that are
automatically searched are local, non-local, global, and built-in.
Similarly, if you have a dictionary of values
--> d = {'eggs':'green', 'method':'train'}
then 'd' is a namespace, but if you're function/method/whatever just tries:
--> if method == 'boat':
--> blah()
then you'll get a NameError because the 'd' namespace will not be
automatically searched. You would have to do:
--> if d['method'] == 'boat':
--> blah()
to find the variable in that namespace.
Hope this helps.
~Ethan~
More information about the Python-list
mailing list