On Thursday 23 October 2003 07:51, Terry Reedy wrote: ... > So I really *don't* need global. Perhaps a new builtin > > def me(): > import sys > return sys.modules[__name__] Or, we can make the _compiler_ aware of what is going on (and get just the same semantics as global) by accepting either a non-statement keyword (scope, as I suggested elsewhere) or a magicname for import, e.g. import __me__ as Barry suggested. Then __me__.x=23 can have just the same semantics as today "x=23" has if there is some "global x" somewhere around, and indeed it could be compiled into the same bytecode if __me__ was sufficiently special to the compiler. [[ If __me__ was assigned to other objects, subjected to setattr, etc, it would lose all special powers, and become restricted to whatever restrictions may apply now or in the future to "setting stuff in other modules". ]] We'd get more clarity _for human readers_ by thus flagging every assignment-to-module-level-name *in the very spot it's happening* and avoiding the inappropriate term "global" -- to the compiler it's all the same, but humans are important, too. Alex
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