📜  Python中的 Getter 和 Setter(1)

📅  最后修改于: 2023-12-03 15:04:30.559000             🧑  作者: Mango

Python中的Getter和Setter

在编程中,Getter和Setter是一种称为属性访问器的特殊方法。Getter用于获取属性的值,而Setter用于设置属性的值。在Python中,Getter和Setter是通过@property和@getter.setter装饰器实现的。

Getter

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

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方法中,我们可以添加一些条件或约束,以确保属性的值符合要求。