如何避免循环导入循环
How to avoid circular import looping
我对 python 中的导入感到困惑。看来我有循环导入的问题,但我不确定如何以正确的方式解决这个问题。一个例子:
文件 1:
value = 5
import file2
file2.set()
文件 2:
import file1
def set():
file1.value = 6
您有几个选择:
- 如果需要紧密链接,请将所有代码放在一个文件中
value = 5
def set():
value = 6
set()
将使用其他部分的代码放在第三个文件中,或者换句话说,分解你的代码以避免循环引用——你的例子有点太简单了,无法实现不过
将值传递给您要使用的函数,或传递您要修改的对象;无论如何,导入和修改另一个模块的全局变量并不是设计程序的好方法:
# this is my_module.py
def set_value(x):
x.value = 6
def increment(x):
return x + 1
其他地方:
import my_module
class X:
value = 5
x = X()
my_module.set_value(x)
y = 5
y = my_module.increment(y)
我对 python 中的导入感到困惑。看来我有循环导入的问题,但我不确定如何以正确的方式解决这个问题。一个例子:
文件 1:
value = 5
import file2
file2.set()
文件 2:
import file1
def set():
file1.value = 6
您有几个选择:
- 如果需要紧密链接,请将所有代码放在一个文件中
value = 5
def set():
value = 6
set()
将使用其他部分的代码放在第三个文件中,或者换句话说,分解你的代码以避免循环引用——你的例子有点太简单了,无法实现不过
将值传递给您要使用的函数,或传递您要修改的对象;无论如何,导入和修改另一个模块的全局变量并不是设计程序的好方法:
# this is my_module.py
def set_value(x):
x.value = 6
def increment(x):
return x + 1
其他地方:
import my_module
class X:
value = 5
x = X()
my_module.set_value(x)
y = 5
y = my_module.increment(y)