exec and globals and locals ...
Peter Otten
__peter__ at web.de
Thu Sep 19 02:47:43 EDT 2019
More information about the Python-list mailing list
Thu Sep 19 02:47:43 EDT 2019
- Previous message (by thread): exec and globals and locals ...
- Next message (by thread): exec and globals and locals ...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Eko palypse wrote:
> exec('import test01', globals())
> print('f3 out', x)
>
> # result exception, expected but because f1 didn't throw an exception
> # I'm confused. module test01 has only this two lines
> x += 1
> print('f3 in:', x)
The lines above run in the test01's global namespace, not in the global
namespace of the importing module.
> exec('import test01', globals())
Think of import as a function like
exec("test01 = load_module('test01')", globals())
Then it should be clear that the name 'test01' is put into globals(), if
load_module() doesn't throw an exception. No sharing or nesting of
namespaces takes place.
- Previous message (by thread): exec and globals and locals ...
- Next message (by thread): exec and globals and locals ...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list