class A: x = None # 类型:浮点数 def __init__(self, x: float) -> None: """ self should not be annotated init should be annotated to return None """ self.x= x @classmethod def from_int(cls, x: int) -> 'A': """ cls should not be annotated Use forward reference to refer to current class with string literal 'A' """ return cls(float(x))
由于定义函数时会评估注释,因此需要当前类的前向引用。当引用一个类(如果导入将导致循环导入)时,也可以使用前向引用。