我试图globals()
在从另一个文件导入的函数内部调用,以检索程序的全局定义值。
但是,它给出的字典与在函数外部调用时的字典不同。
我知道这是注定要发生的,因为这里说:
globals 表字典是当前模块的字典(在函数内部,这是定义它的模块,而不是调用它的模块)。
但是是否有任何技巧或其他函数可以使其globals()
表现得好像它被调用了__main__
?
这个问题很容易重现。例如,输入foo.py
:
def get_globals():
return globals()
然后在主程序中:
from foo import get_globals()
main_globals = globals()
foo_globals = get_globals()
main_globals == foo_globals
Out [1]: False
但是,有没有办法让最后一行阅读:
main_globals == foo_globals
Out [2]: True
提前感谢您的帮助:)