> since when did Python grow full lexical scoping? > > does anyone that has learned about the LGB rule expect > the above to work? Not sure what LGB stands for. "Local / Global / Built-in"? > in contrast, my example used a name which appears to be > defined in the same scope as the other names introduced > on the same line of source code -- but isn't. > > def foo(x): > foo.x =3D x > > here, "foo" doesn't refer to the same namespace as the > argument "x", but to instead whatever happens to be in > an entirely different namespace at the time the function > is executed. > > in other words, this feature cannot really be used to store > statics -- it only looks that way... Huh. ?? I'm assuming your hypothetical foo.x means the attribute 'x' of the function 'foo' in the global namespace for the function 'foo' - which, conveniently, is the module where foo is defined! 8<--- foo.py --->8 def foo(): # Return the object named 'foo'. return foo 8<--- end foo.py --->8 8<--- bar.py --->8 from foo import * print foo() 8<--- end bar.py --->8 % python bar.py <function foo at 80eb4c0> % I must be misapprehending what you're suggesting - i know you know this stuff better than i do - but it seems to me that foo.x would work, were foo to have an x. (And that foo.x would, in my esteem, be a suboptimal way to get at x from within foo, but that's besides the fact.) Ken klm@digicool.com
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