TP wrote: > Hi everybody, > > See the following example: > > ######### > def tutu(): > > def toto(): > > print a > a = 4 > print a > > a=2 > toto() > > tutu() > ########## > > I obtain the following error: > "UnboundLocalError: local variable 'a' referenced before assignment" > > This is because Python looks in the local context before looking in the > global context. > > The use of "global a" in toto() does not help because global allows to > force Python to look for the variable at the module level. > > So, how to share a variable between intricated functions?
This limitation is removed in Python 3 with the 'nonlocal' statement: >>> def outer(): ... def inner(): ... nonlocal a ... print(a) ... a = 4 ... print(a) ... a = 2 ... inner() ... print(a) ... >>> outer() 2 4 4 Peter -- http://mail.python.org/mailman/listinfo/python-list