python的property
时间: 2024-06-17 10:07:46 浏览: 136
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.
```