解决Python类型提示的循环导入

时间:2019-12-23 20:07:34

标签: 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,这将导致循环导入错误。有人知道我可以使用AB放在单独的文件中,保持类型提示并遇到循环导入错误的情况吗?

1 个答案:

答案 0 :(得分:0)

是的。 Python ignores type hints in quotes

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