python中property的使用方法和例子
时间: 2024-04-12 12:28:42 浏览: 59
property 是 Python 中的一个装饰器,用于将类的方法转化为属性访问。这样,可以通过调用方法的方式来获取或设置属性的值,而外部代码则可以像访问普通属性一样使用它们。
以下是使用 property 的示例:
```python
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def radius(self):
return self._radius
@radius.setter
def radius(self, value):
if value <= 0:
raise ValueError("Radius must be positive")
self._radius = value
@property
def area(self):
return 3.14 * self._radius ** 2
```
在上述示例中,`Circle` 类有一个 `_radius` 私有属性。通过使用 `@property` 装饰器,我们可以将 `radius` 方法转换为一个可读写的属性。代码中的 `@radius.setter` 装饰器定义了一个设置属性值的方法,并进行了一些验证。
现在我们可以像访问普通属性一样使用 `Circle` 类的 `radius` 和 `area` 属性:
```python
circle = Circle(5)
print(circle.radius) # 输出: 5
print(circle.area) # 输出: 78.5
circle.radius = 10
print(circle.radius) # 输出: 10
print(circle.area) # 输出: 314.0
circle.radius = -5 # 引发 ValueError 异常
```
如上所示,我们可以通过调用 `circle.radius` 来获取半径值,也可以通过 `circle.radius = 10` 来设置半径值。同时,通过 `circle.area` 获取圆的面积。
使用 `property` 装饰器可以使代码更加简洁,同时提供了更好的封装性和易用性。
阅读全文