property优雅地管理对象属性,提升代码可维护性
property?
在 Python 中,property 是一个内置函数,用于将类的方法转换为“只读”或“可控读写”的属性。
它允许你定义属性的 getter、setter 和 deleter 方法,
而无需改变调用方式(即仍可通过 obj.attr 访问)。
使用 @property 装饰器是实现这一功能的最常见方式。
下面是一个使用 @property 的简单例子:
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("半径不能为负数")
self._radius = value
@property
def area(self):
return 3.14159 * self._radius ** 2
# 使用
c = Circle(5)
print(c.radius) # 5
print(c.area) # 78.53975
c.radius = 10 # 触发 setter
print(c.area) # 314.159
property?_radius),防止直接修改。area)。@property、@attr.setter 等。class Person:
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
def set_name(self, value):
self._name = value.upper()
name = property(get_name, set_name)
_x)。@attr.deleter 并使用 del obj.attr。