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

时间:2016-12-29 22:17:57

标签: python python-3.x module namespaces global

有没有办法在特定模块名称空间中获取包含全局变量的字典?如果模块包含至少一个类似于:

的函数,则看起来可以实现它
import mymodule
d = mymodule.func.__globals__

这是对的吗?

有更通用的方法吗? (例如,如果模块不包含任何函数而只包含变量,那怎么能这样做?)

我不期待“你想用它做什么?可能还有另一种做法。”回答;我的问题相当于理论问题。

如果重要的话,我对Python3的回答更感兴趣。

1 个答案:

答案 0 :(得分:3)

只需抓住使用vars来抓取与全局范围相对应的__dict__

vars(mymodule)

func.__globals__只需返回此字典即可查看:

vars(mymodule) is mymodule.func.__globals__

返回True