解析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,这

我必须创建将彼此的实例作为属性的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
,这将导致循环导入错误。有人知道我可以使用哪种模式将
a
B
放在不同的文件中,保持类型提示,并遇到循环导入错误吗?

是:

class A:
    def __init__(self, b: 'B') -> None:
        self.b = a
class B:
    def __init__(self, a: 'A') -> None:
        self.a = a