On Tue, Jul 5, 2016 at 1:35 PM, Steven D'Aprano <st...@pearwood.info> wrote: >> If you push your code into a separate .py file, you can reference the >> original module by importing it. Is that also the normal way to use >> "outer" functions etc from inside a namespace? > > Good question! > > With the current implementation, importing should work, but it's not > necessary. The surrounding module (the real .py module) is inserted into > the name resolution path of functions: > > py> x = 999 > py> @namespace.Namespace > ... class Test: > ... def test(): > ... print(x) > ... > py> Test.test() > 999
Ah, fascinating. This does break the "just unindent and move to a new file if you want to break it out" equivalency, but it does make sense - it's a *nested* namespace, which modules (even in a package) are not. So you have the outer namespace acting pretty much the way builtins do. (Do nested namespaces work?) ChrisA -- https://mail.python.org/mailman/listinfo/python-list