【问题标题】:Proper way to type hint a private property in python在python中键入提示私有属性的正确方法
【发布时间】:2019-05-28 02:23:00
【问题描述】:

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

属性输入示例:

class Sample(object):
    _target_dir: Path

    @property
    def target_dir(self):
        pass

或者输入属性:

class Sample(object):
    target_dir: Path

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

【问题讨论】:

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


    【解决方案1】:

    您应该装饰@property 属性所包裹的底层函数:

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

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

    【讨论】:

    • 我认为这是最好的方法。我不喜欢这样的唯一原因是您失去了设置默认值以及类型提示的能力。您必须为私有属性本身设置一个默认值。
    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 2023-02-14
    • 2013-01-19
    • 1970-01-01
    • 2022-01-20
    • 2014-06-19
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多