正确的方式来提示python中的私有属性

时间:2018-12-31 16:10:45

标签: python python-3.x properties type-hinting

在PEP 526之后,我想知道如何正确键入提示由属性装饰的实例或类属性。我是否要输入提示基础属性或名称或属性?

输入属性的示例:

class Sample(object):
    _target_dir: Path

@property
def target_dir(self):
    pass

或输入属性:

class Sample(object):
    target_dir: Path

还是其他方式?实例变量和类变量是否相同?

1 个答案:

答案 0 :(得分:1)

您应该修饰@property属性包裹的基础函数:

class Sample:
    @property
    def target_dir(self) -> Path:
        return Path("/foo/bar")

如果您的属性围绕某些基础私有属性包装,则由您决定是否要对其进行注释。我建议您这样做,这样无论您在何处使用该私有属性,都可以从类型检查中受益,但是添加的任何类型都将与属性本身的类型无关。