在任何时候访问类属性(获取或设置)时执行的方法是一个特殊的方法,称为属性装饰器。属性装饰器在 Python 中用于在访问类属性时执行一些操作,例如验证属性值、记录日志等。属性装饰器可以用于类属性的获取和设置,分别使用 @property
和 @<attribute>.setter
装饰器。
例如,如果我们有一个类 Person
,其中有一个属性 age
,我们可以使用属性装饰器来确保 age
的值在设置时是一个正整数:
class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if not isinstance(value, int) or value < 0:
raise ValueError("Age must be a positive integer")
self._age = value
在这个例子中,我们使用了 @property
装饰器来定义 age
的 getter 方法,这个方法会在访问 age
属性时被调用。我们还使用了 @age.setter
装饰器来定义 age
的 setter 方法,这个方法会在设置 age
属性时被调用。在 setter 方法中,我们检查了 value
是否为正整数,如果不是,则抛出一个异常。
属性装饰器可以让我们更好地封装类的属性,并确保属性的值满足一定的条件。
领取专属 10元无门槛券
手把手带您无忧上云