我目前正在制作一个将局部变量导出到python可读文件并通过exec导入的模块,但是我不能在不使用return的情况下修改它们(这是整个主意)。问题归结为:
我有两个文件,一个模块(module.py)和一个主文件(main.py)。我希望模块能够在main内部执行代码:
#module.py
def foo():
exec("b = a")
#main.py
from module import foo
a = 10
foo()
print(b)
预期结果
10
实际结果
NameError: name 'b' is not defined
答案 0 :(得分:-1)
您可以使用__main__
main.py:
from module import foo
import __main__
a = 10
__main__ = foo(__main__)
print(b)
module.py:
def foo(main):
main.b = main.a
return main