Python 3中是否有一种通用方法来获取对调用函数的模块命名空间的引用?问题源于这样一个事实,即global
在函数中引用了定义函数的命名空间,但我想获得对命名空间的引用,就像在具有动态范围的语言中一样。
实际上,我想在交互式会话期间使用预定义值污染当前命名空间,类似于from module import *
但调用set_state()
.
from state import set_state
set_state()
from module import *
语法是不够的,因为我有几个配置可以像set_state(3)
. 我知道我可以locals()
作为参数传递给函数。不过,我认为存在更通用的解决方案。此外,答案不应仅限于当前用例。