@property什么意思
时间: 2024-04-17 07:26:05 浏览: 15
`@property`是Python中的一个装饰器(Decorator),用于将一个类方法转换为属性(property)。通过使用`@property`装饰器,可以将一个方法定义为类的属性,从而使其能够像访问属性一样进行调用,而不需要显式地调用方法。
使用`@property`装饰器可以为类添加一些计算属性或对属性进行访问控制。当访问被`@property`修饰的方法时,实际上是调用了这个方法,并返回其返回值。
以下是一个使用`@property`的示例:
```python
class Circle:
def __init__(self, radius):
self.radius = radius
@property
def diameter(self):
return self.radius * 2
@diameter.setter
def diameter(self, value):
self.radius = value / 2
circle = Circle(5)
print(circle.diameter) # 输出:10
circle.diameter = 12
print(circle.radius) # 输出:6
```
在上面的示例中,`Circle`类定义了一个半径属性`radius`,同时使用`@property`装饰器定义了一个直径属性`diameter`。当访问`circle.diameter`时,实际上调用了`diameter()`方法并返回其计算结果。我们还可以使用`@diameter.setter`装饰器定义直径属性的设置方法,当给直径属性赋值时,会自动调用设置方法来更新半径属性的值。
通过使用`@property`装饰器,我们可以将方法的调用方式转换为属性的访问方式,使代码更加简洁和易读。