Python:property 示例代码

class TestClass:
    def __init__(self, value=10):
        self.value = value

    def getValue(self):
        return self.value

    def setValue(self, value):
        self.value = value

    def delValue(self):
        del self.value

    x = property(getValue, setValue, delValue)


if __name__ == "__main__":
    tc = TestClass()
    print(tc.value)
    print(tc.x)
    tc.x = 18
    print(tc.x)
    del tc.x
    print(tc.x)  # 会报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的property是一种特殊的装饰器,用于控制类属性的访问和修改。通过使用property,我们可以控制属性访问时的数据验证、数据转换等操作,以及保护属性的安全性。property通常由getter、setter和deleter三个方法组成,它们分别用于获取、设置和删除属性的值。其中,getter方法用于获取属性值,setter方法用于设置属性值,deleter方法用于删除属性值。 下面是一个简单的例子: ``` class Rectangle: def __init__(self, width, height): self._width = width self._height = height @property def width(self): return self._width @width.setter def width(self, value): if value <= 0: raise ValueError("Width must be positive.") self._width = value @property def height(self): return self._height @height.setter def height(self, value): if value <= 0: raise ValueError("Height must be positive.") self._height = value @property def area(self): return self._width * self._height ``` 在这个例子中,我们定义了一个Rectangle类,并为其定义了width、height和area三个属性。通过使用@property装饰器,我们为width和height属性定义了getter和setter方法,这样就可以控制属性访问时的数据验证。在这个例子中,如果尝试设置一个非正数的宽度或高度,就会抛出一个ValueError异常。 使用这个类的示例代码: ``` >>> r = Rectangle(3, 4) >>> r.width 3 >>> r.height 4 >>> r.area 12 >>> r.width = 5 >>> r.height = 6 >>> r.area 30 >>> r.width = -1 Traceback (most recent call last): ... ValueError: Width must be positive. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值