> if I understand 'global x in f' will introduce a local x in f even if there > is none, for symmetry with global. Maybe this has already been answered > (this thread is getting too long, and is this change scheduled for 2.4 or > 3.0?) but > > x = 'global' > > def f(): > def init(): > global x in f > x = 'in f' > init() > print x > > f() > > will this print 'global' or 'in f' ? I can argument both ways which is not > a good thing. The compiler does a full analysis so it will know that init() refers to a cell for x in f's locals, and hence it will print 'in f'. For the purposes of deciding which variables live where, the presence of 'global x in f' inside an inner function (whether or not there's a matching assignment) is equivalent to the presence of an assignment to x in f's body. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4