我正在尝试编写一个“父”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
无论变量在exec()
中是什么,我都可以在执行完成后清除children1.py
中使用的变量吗?
我希望parent.py
中的变量是绝对的
看一下documentation。可以看到exec函数有两个可选参数。 文档中说“如果省略了可选部分,代码将在当前范围内执行”。 因此,children1.py文件中的变量
a
与parent.py文件中的变量a
完全相同如果不希望出现这种行为,则必须为全局和/或局部变量设置一些字典。例如,选择空字典会将parent.py更改为
然后,程序结束时
a
的值为零相关问题 更多 >
编程相关推荐