@property详解

来源:互联网 发布:淘宝一个钻要多少单 编辑:程序博客网 时间:2024/06/08 02:21

@property有两个作用

1 将类方法转换为只读属性

举个栗子:

class Parrot(object):    def __init__(self):        self._voltage = 100000    @property    def voltage(self):        """Get the current voltage."""        return self._voltagesummer=Parrot()print(summer.voltage)

这里,@property 就把类Parrot的方法 voltage转换为一个只读属性,不可以对该属性操作。

2 重新实现一个属性的setter和getter方法

举个栗子:

class C(object):    def __init__(self): self._x = None    @property    def x(self):        """I'm the 'x' property."""        return self._x    @x.setter    def x(self, value):        self._x = value    @x.deleter    def x(self):        del self._xtest=C()print(test.x)test.x=10print(test.x)

输出为:

None10

@property重新实现了属性x的setter和getter。
但有一点不理解的是,

如何实现deleter的????

原创粉丝点击