类成员和方法
class A:
x = None # type: float
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))
由于在定义函数时评估注释,因此需要当前类的前向引用。当引用可导致循环导入的类时,也可以使用前向引用。