我有两个文件,第一个文件中定义了名为“ functions.py”的函数,第二个文件中我可以调用名为“ test.py”的函数,并且我正在使用来自“ test”的exec执行一些代码。 py”,并要求它在通过exec进行“ for”循环时要求在“ for”循环中初始化的变量,但出现错误
NameError:未定义名称'x'
详细信息:
在'functions.py'中,我描述了一个名为'forloop'的函数,如下所示:
def forloop(current, maximum, increment, code):
frame = inspect.currentframe().f_back
for x in range(current, maximum, increment):
exec(str(code), frame.f_globals, frame.f_locals)
在“ test.py”中,我正在调用此函数
from functions import *
forloop(1,5,1,"""
echo(x)
""")
现在我正在另一个文件中的另一个exec执行它,但是我很确定问题就在这里。
我认为我应该能够从该exec访问'x',但我不能,它给我一个错误提示
NameError:未定义名称'x'
请告诉我为什么未定义'x',以及如何从该文件中获取'x'。
答案 0 :(得分:0)
您尝试将forloop方法从functions.py文件导入到test.py文件吗?
您的test.py文件应如下所示:
from functions import forloop
forloop(1,5,1,"""
echo(x)
""")
答案 1 :(得分:0)
首先在test.py上,您必须:
import functions
...那么您可以将其称为
functions.forloop
欢呼!