📅  最后修改于: 2023-12-03 15:04:30.559000             🧑  作者: Mango
在编程中,Getter和Setter是一种称为属性访问器的特殊方法。Getter用于获取属性的值,而Setter用于设置属性的值。在Python中,Getter和Setter是通过@property和@getter.setter装饰器实现的。
Getter方法的作用是获取属性的值。在Python中,通过装饰器@property来定义Getter方法。例如,我们定义一个名为Person的类,其中包含一个名为age的属性。我们可以使用Getter方法获取age属性的值。
class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
p = Person(25)
print(p.age) # 输出 25
通过@property装饰器,我们可以将方法转换为属性,从而使其更易于使用。在上述例子中,我们可以像访问属性一样访问age方法,以获取属性的值。
Setter方法的作用是设置属性的值。在Python中,Setter方法是通过装饰器@age.setter来定义的。例如,我们可以定义一个名为Person的类,其中包含一个名为age的属性,并使用Setter方法设置age属性的值。
class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, age):
if age < 0:
raise ValueError("Age cannot be negative")
self._age = age
p = Person(25)
p.age = 30 # 设置age属性的值为30
print(p.age) # 输出 30
p.age = -1 # 抛出异常,因为age属性的值不能为负数
通过@age.setter装饰器,我们可以定义一个方法来设置属性的值,并在该方法中添加一些条件或约束。在上述例子中,我们通过添加一个条件来确保age属性的值不能为负数。
Getter和Setter是一种属性访问器,它们使代码更简洁和易于使用。通过使用@property和@age.setter装饰器,我们可以定义Getter和Setter方法来获取和设置属性的值。Getter用于获取属性的值,而Setter用于设置属性的值。在Setter方法中,我们可以添加一些条件或约束,以确保属性的值符合要求。