我是一个有用的助手,可以翻译文本。
我遇到了一个问题,在运行一个Python脚本中,我对其中的一些内容非常不理解:
假设我们在同一个目录下有两个文件:'init.py'和'text.py'
init.py:
X = 5
print("init.py was run")
test.py:
exec(open("./init.py").read())
print("X = %s" %X)
如果我现在运行test.py,会得到如下输出:
init.py被运行
X = 5
然而,如果我将test.py更改为:
def func_call( filename):
exec(open(filename).read())
print("X = %s" %X)
func_call("./init.py")
我得到:
init.py was run
Traceback (most recent call last):
File "test.py", line 5, in
func_call("./init.py")
File "test.py", line 3, in func_call
print("X = %s" %X)
NameError: name 'X' is not defined
有人能解释一下为什么这会导致不同的结果吗? 有没有解决方法? 我的目标是通过运行一个Python脚本并访问在该Python脚本中设置的变量来初始化大多数变量。
const.py
文件并进行导入呢? - How about nope