无法使用exec(Python)从另一个文件访问外部变量

问题描述 投票:0回答:2

我有两个文件,第一个文件中定义了名为'functions.py'的函数,第二个文件中我可以调用名为'test.py'的函数,并且我正在使用'test.py中的exec执行一些代码'并询问它是通过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'。

我有两个文件,第一个文件中定义了名为'functions.py'的函数,第二个文件中我可以调用名为'test.py'的函数,并且我正在使用exec from'...

python python-3.x variables exec
2个回答
0
投票

首先必须在test.py上:


0
投票

您是否尝试将来自function.py文件的forloop方法导入到test.py文件中?

© www.soinside.com 2019 - 2024. All rights reserved.