我正在尝试编写一个可以在其上执行多个 py 文件的“父”py 文件。
如果我简化,结构如下所示。
parent.py
- childeren1.py
在parent.py
它内部children1.py
以这种方式执行。
**parent.py**
a = 0
with open ("children1.py", "r", encoding="utf-8") as file:
exec(file.read())
file.close()
print(a)
在“children1.py”里面,
**children1.py**
a = 1
如果我运行parent.py
,它会返回我想要a=1
的结果。children1.py
a=0
我可以清除children1.py
在其执行完成后使用的变量exec()
吗?
我希望变量parent.py
是绝对的。
查看文档。可以看到 exec 函数有两个可选参数。文档说“如果省略了可选部分,代码将在当前范围内执行”。因此,a
children1.py 文件中的变量与a
parent.py 中的变量相同。
如果您不希望出现这种行为,则必须为全局和/或局部变量设置一些字典。例如,选择一个空字典将 parent.py 更改为
with open ("test2.py", "r", encoding="utf-8") as file:
exec(file.read(), {})
file.close()
print(a)
然后,a
程序结束时的值为零。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句