如何解决如何绕过循环进口?
我有一个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
中的variable
与func
之外的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 举报,一经查实,本站将立刻删除。