目录
【Python】python类方法中,@property的含义是什么?请详细解释
【Python】python类方法中,@property的含义是什么?请详细解释
在 Python 中,@property
是一个装饰器,用于将类的方法转换为只读属性。
这种方法的行为就像访问属性一样,但它背后其实是一个函数调用。
作用
- 将方法变为属性:
使用@property
装饰的方法可以像访问普通属性一样访问,而无需显式调用方法(不需要加括号()
)。 - 只读属性:
如果只有@property
,则该属性是只读的,无法直接对它赋值。 - 更好的封装性:
提供了一种优雅的方式隐藏实现细节,同时可以动态计算属性值。
基本用法
示例 1:基础用法
class Circle:
def __init__(self, radius):
self._radius = radius # 私有属性
@property
def radius(self):
return self._radius # 返回半径
circle = Circle(5)
print(circle.radius) # 像属性一样访问:输出 5
# circle.radius = 10 # 报错:AttributeError: can't set attribute
解析:
- 定义了一个
radius
方法并使用@property
装饰器。 - 调用
circle.radius