这可能是一个非常幼稚的问题,最好通过一个例子来解释:
module1.py
我的问题是:是否可能将一个函数插入到模块中,并使其全局命名空间相应更新?
相关链接:主脚本中定义的全局变量无法被不同模块中定义的函数访问。请注意,我知道共享全局变量是个坏主意,也知道配置模块是一个好的折衷方案,但请注意这不是我想要实现的。
import module2
def new_func():
print(var_string)
module2.new_func = new_func
module2.func()
module2.new_func()
module2.py
var_string = "i'm the global string!"
def func():
print(var_string)
结果
> python module1.py
i'm the global string!
Traceback (most recent call last):
File "module1.py", line 8, in <module>
module2.new_func()
File "module1.py", line 4, in new_func
print(var_string)
NameError: name 'var_string' is not defined
我的问题是:是否可能将一个函数插入到模块中,并使其全局命名空间相应更新?
相关链接:主脚本中定义的全局变量无法被不同模块中定义的函数访问。请注意,我知道共享全局变量是个坏主意,也知道配置模块是一个好的折衷方案,但请注意这不是我想要实现的。