解决python中的循环导入错误[重复]
问题内容:
这个问题已经在这里有了答案 :
8年前关闭。
可能重复:
Python中的循环(或循环)导入
我有B类,可以导入并创建A类的实例。A类需要在其构造函数中引用B,因此包括B。
from a import A
class B:
def __init__(self):
self.a = A()
from b import B
class A:
def __init__(self, ref):
assert isinstance(ref, B)
self.ref = ref
这行不通。主文件导入B并使用它…不。导入出现问题。
来自文件的 错误ImportError:无法导入名称B
问题答案:
除了“不要那样做,您正在将自己绘画到一个角落”之外,您还可以推迟B的导入,直到需要它为止。档案a.py
:
class A:
def __init__(self, ref):
from b import B
assert isinstance(ref, B)
self.ref = ref
B
在实例化类之前A
,类不会被导入,届时模块已经被模块完全导入了b
。
您还可以使用一个通用的基类并对此进行测试。