[Tutor] Variable scope for class?
Kent Johnson
kent37 at tds.net
Fri Aug 31 00:33:20 CEST 2007
Orest Kozyar wrote:
> I'm trying to follow the example listed in the wiki at
> http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject regarding the
> use of a metaclass.
>
> What I don't understand is how the metaclass (EntitySingleton) has access to
> the variable ctx which is instantinated outside the scope of the class
> definition. Could anyone point me in the right direction please?
This is just basic name lookup rules. Names are looked up, in order,
- in the scope of the current function
- in the scope of any lexically enclosing functions
- in the scope of the module containing the function (the 'global' scope)
- in the built-in scope.
ctx is defined at module level so the third step of the name lookup
finds it.
Not finding any great references but here are a few that might help:
http://diveintopython.org/html_processing/locals_and_globals.html
http://swaroopch.info/text/Special:Search?search=namespace&go=Go
http://docs.python.org/ref/naming.html
Kent
More information about the Tutor
mailing list