微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何绕过循环进口?

如何解决如何绕过循环进口?

我有一个python文件,其中包含我要使用的所有功能,而我的主要代码还有一个。 我们将函数称为“ functions.py”,将主要函数称为“ main.py”。

我的functions.py文件中的函数需要main.py文件中的变量。尝试将一个导入到另一个中时,出现循环导入错误

示例:

main.py:

from functions import func
variable = 10

func()

functions.py:

from main import variable
def func():
    variable += 1

现在我希望变量为11。

我了解为什么会发生这种情况,但是有什么办法可以使它起作用?

对不起,我的菜鸟问题,谢谢你。

解决方法

执行此操作的最佳方法是将变量作为参数传递给函数。例如:

main.py:

from functions import func
variable = 10

variable = func(variable)

functions.py:

def func(variable):
    variable += 1
    return variable

即使您可以将其导入,或者只是将func移到main.py文件中,Python也会抛出UnboundLocalError抱怨{{1 }}在分配之前使用,因为variable中的variablefunc之外的variable不同。例如:

func

此处,“外部v”在全局范围内,而“内部v”在>>> v = 10 # outer v >>> def func(): v += 1 # inner v >>> func() Traceback (most recent call last): File "<pyshell#4>",line 1,in <module> func() File "<pyshell#3>",line 2,in func v += 1 UnboundLocalError: local variable 'v' referenced before assignment >>> 范围内,因此它们没有引用相同的变量。为了进一步阅读,我建议您查找范围在Python中的工作方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。