在 Python 中,@property
是一种装饰器,可以将一个方法转换为属性,使其可以像访问属性一样被调用,而不是像调用方法一样。
使用 @property
装饰器可以将一个方法转换为只读属性,也可以通过定义 setter
方法来实现可写属性。这样可以方便地访问和修改对象的属性,同时也可以在访问和修改属性时执行一些额外的逻辑。
下面是一个示例,演示了如何使用 @property
装饰器定义一个只读属性和一个可写属性:
class Person:def __init__(self, name, age):self._name = nameself._age = age@propertydef name(self):return self._name@propertydef age(self):return self._age@age.setterdef age(self, value):if not isinstance(value, int):raise TypeError('Age must be an integer')if value < 0 or value > 120:raise ValueError('Age must be between 0 and 120')self._age = value# 创建一个 Person 对象
person = Person('Alice', 25)# 访问只读属性 name
print(person.name)# 访问可写属性 age
person.age = 30
print(person.age)# 尝试设置不合法的年龄
person.age = 'thirty'
使用 @property
装饰器定义的属性名和方法名应该相同,这样可以使代码更加清晰易懂。