You can use ``eval`` to run an expression, swapping in a different globals and/or locals namespace. Will this serve your purpose?
In [1]: import types In [2]: ns = types.SimpleNamespace(a=1) In [3]: eval('a', ns.__dict__) Out[3]: 1 https://docs.python.org/3/library/functions.html#eval On Fri, Jun 8, 2018 at 11:43 AM David Teresi <dkter...@gmail.com> wrote: > One of the features I miss from languages such as C# is namespaces that > work across files - it makes it a lot easier to organize code IMO. > > Here's an idea I had - it might not be the best idea, just throwing this > out there: a "within" keyword that lets you execute code inside a > namespace. For example: > > # A.py > import types > cool_namespace = types.SimpleNamespace() > > within cool_namespace: > def foo(): > print("foo run") > > #B.py > import A > within A.cool_namespace: > foo() # prints "foo run" > > Thoughts? > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/