[Finn] > >> Using global on an import name is currently ignored by Jython because > >> the name assignment is done by the runtime, not the compiler. [Thomas] > >So it's impossible to do, in Jython, something like: > > > >def fillme(): > > global me > > import me > > > >but it is possible to do: > > > >def fillme(): > > global me > > import me as _me > > me = _me > > > >? [Finn again] > Yes, only the second example will make a global variable. > > > I have to say I don't like that; we're always claiming 'import' (and > >'def' and 'class' for that matter) are 'just another way of writing > >assignment'. All these special cases break that. > > I don't like it either, I was only reported what jython currently does. > The current design used by Jython does lend itself directly towards a > solution, but I don't see anything that makes it impossible to solve. Tentatively, I'd say that this should be documented as a Jython difference and Jython should strive to fix this. So I see no good reason to rule it out in CPython. That doesn't mean I like Thomas's example! It should probably be redesigned along the lines of def fillme(): import me return me me = fillme() to avoid needing side effects on globals. --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