保护变量的访问与设置

保护变量的访问与设置

对于私有变量(双下划线)或者保护变量(单下划线),不允许外部直接访问,类似于Java的private,可以通过对外提供get,set接口来访问和修改这类变量,便于控制。

  • @property装饰器会将方法转换为相同名称的只读属性,相当于实现get方法
  • @xxx.setter装饰器使得可以直接通过 对象.xxx来修改保护变量的值,相当于实现set方法
class Student(object):
    def __init__(self, name):
        self.name = name
        self._score = None

    @property
    def score(self):
        return self._score

    @score.setter
    def score(self, value):
        self._score = value

if __name__ == '__main__':
    s = Student('王大锤')
    s.score = 100  # 设置保护变量的值
    print(s.score)  # 访问保护变量