> From: Moore, Paul [mailto:Paul.Moore at atosorigin.com] > > From: Delaney, Timothy C (Timothy) [mailto:tdelaney at avaya.com] > > > global <name> [in <scope>] > > > > where <scope> default to the current module. > > This made me think. What should be the effect of > > def f(): > x = 12 > def g(): > global y in f > y = 12 > g() > print locals() > > I suspect the answer is "it's illegal". But by extension from > the current > behaviour of "global", it should create a local variable in f. My understanding of (all) the proposals, and what I would expect, is identical semantics to the current 'global', but the affected scope. So yes, the above should create a local name `y` in `f`. The local name `y` would be allocated at compile time, just like any other local name. Likewise, the following should be illegal: def f(): x = 12 y = 1 def g(): global y in f y = 12 g() print locals() because the global statement occurs after a local binding of the name. Tim Delaney
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