繁体   English   中英

python属性getter有什么用吗?

[英]Is there any use for a python property getter?

我想知道是否有任何用于显式使用类属性的getter装饰器:

class A:
    @property
    def p(self):
       return self._p

    @p.setter
    def p(self, val):
       assert p < 1000
       self._p = val

    @p.getter
    def p(self):
       return self._p

为什么我会在这里明确地使用getter? 它不会使p(self)中的代码无法访问吗? 基本上,是否有任何实际的理由使用它?

当您从父类继承属性并想要覆盖getter时,它很有用:

class Parent:
    @property
    def prop(self):
        return 'Parent'

    @prop.setter
    def prop(self, value):
        print('prop is now', value)


class Child(Parent):
    @Parent.prop.getter
    def prop(self):
        return 'Child'

这将创建一个Foo.prop的副本, Foo.prop具有不同的getter函数,但具有相同的setter(和deleter)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM