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/

Reply via email to