Name resolution happens in three stages (LGB):
local | Names that are defined inside a function
have local scope. The function locals() returns a dictionary containing
the local symbol table.
The function inspect.getmodule( object) (9.11) returns the objects module. |
global | Modules create global namespaces. The global statement which is executed inside a function makes module names accessible. The function globals() returns a dictionary containing the modules global symbol table. |
builtin | Pre-defined Python names are in the module __builtin__ .
|
Here is an example for local and global name references:
#!/usr/bin/env python x = 1 y = 2 def func(): global x # necessary becaus we want to change the global x x = 10 # changes the global x z = x + y # uses the global y return z print( func()) print( " x:", x) # changed to 10