如何从模块名称空间获取全局变量?

Tho*_*hel 4 python namespaces module global python-3.x

有没有一种方法可以在特定模块名称空间中获取包含全局变量的字典?如果模块包含至少一个具有类似以下内容的功能,则看起来可以实现:

import mymodule
d = mymodule.func.__globals__
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

有更通用的方法吗?(例如,如果模块不包含任何函数而仅包含变量,怎么办?)

我没想到会出现“您打算如何处理?可能还有另一种处理方式。” 回答; 我的问题是理论上的。

如果有问题,我对Python3的回答更感兴趣。

Jim*_*ard 5

只是抓住用途vars,它抓住__dict__与全局范围相对应的用途。

vars(mymodule)
Run Code Online (Sandbox Code Playgroud)

func.__globals__ 只需返回此字典,您将了解如何:

vars(mymodule) is mymodule.func.__globals__
Run Code Online (Sandbox Code Playgroud)

返回True