解析Python类型提示的循环导入
我必须创建将彼此的实例作为属性的Python类解析Python类型提示的循环导入,python,circular-dependency,mypy,python-typing,Python,Circular Dependency,Mypy,Python Typing,我必须创建将彼此的实例作为属性的Python类 class A: def __init__(self, b: B) -> None: self.b = a class B: def __init__(self, a: A) -> None: self.a = a 如果这些类是在同一个文件中定义的,那么这很好,但是在我的例子中,它们都非常大,我希望将它们移动到不同的文件中。但是,如果我这样做,我必须将B导入a.py和a导入B.py,这
class A:
def __init__(self, b: B) -> None:
self.b = a
class B:
def __init__(self, a: A) -> None:
self.a = a
如果这些类是在同一个文件中定义的,那么这很好,但是在我的例子中,它们都非常大,我希望将它们移动到不同的文件中。但是,如果我这样做,我必须将B
导入a.py
和a
导入B.py
,这将导致循环导入错误。有人知道我可以使用哪种模式将a
和B
放在不同的文件中,保持类型提示,并遇到循环导入错误吗?是:
class A:
def __init__(self, b: 'B') -> None:
self.b = a
class B:
def __init__(self, a: 'A') -> None:
self.a = a