在PEP 526之后,我想知道如何正确键入提示由属性装饰的实例或类属性。我是否要输入提示基础属性或名称或属性?
输入属性的示例:
class Sample(object):
_target_dir: Path
@property
def target_dir(self):
pass
或输入属性:
class Sample(object):
target_dir: Path
还是其他方式?实例变量和类变量是否相同?
答案 0 :(得分:1)
您应该修饰@property
属性包裹的基础函数:
class Sample:
@property
def target_dir(self) -> Path:
return Path("/foo/bar")
如果您的属性围绕某些基础私有属性包装,则由您决定是否要对其进行注释。我建议您这样做,这样无论您在何处使用该私有属性,都可以从类型检查中受益,但是添加的任何类型都将与属性本身的类型无关。