我的朋友要我建立一个可以在for循环中执行代码的函数,所以我这样做了,并且我在声明变量netstandard2.0
的同一个文件中使用了exec,现在访问{ {1}}来自执行程序,它说name
这个东西存在于多个文件中,一个运行所有文件,第二个运行所有功能,另一个调用所有功能
我已经尝试在exec中定义变量,并且可以正常工作。
我已经尝试访问name
(包含每个函数的文件)文件中的变量,并且它也可以工作。
我尝试过合并NameError: name 'name' is not defined
和functions.py
(正在使用exec的文件),然后直接通过python运行它并起作用了
我的functions.py
文件
test.py
我的“ test.py”(这是我调用函数的地方)
functions.py
然后,我将通过“ runner.py”中的另一个执行程序运行所有这些操作
def forloop(current, maximum, code):
for x in range(current, maximum):
exec(str(code), globals())
现在,定义from functions import *
name = 'Ameer'
forloop(1,3,"""
echo(name)
""")
时出现错误。请大家帮我解决这个问题
答案 0 :(得分:0)
您需要使用调用forloop
的地方的变量。
import inspect
def forloop(current, maximum, code):
frame = inspect.currentframe().f_back
for x in range(current, maximum):
exec(str(code), frame.f_globals, frame.f_locals)