将变量传递给使用 exec(open().read()) 包含的 python 脚本

Pass variables to python script included using exec(open().read())

我在尝试从使用 exec(open().read()) 包含的函数访问变量时遇到错误。

但在这里我可以访问函数 printName()。有没有不使用subprocess的其他方法?

我正在使用 python 3.7

main.py

age = 32
def printName(name):
    print(name)
exec(open("action.py").read())

action.py

printName("John")
print(age)

John

NameError: name age is not defined

我试过你提到的这个代码是有效的我认为你在 运行ning action.py 技术上你需要 运行 包含这个代码的 main.py 文件。

age = 32
def printName(name):
    print(name)
exec(open("action.py").read())