保护变量的访问与设置
保护变量的访问与设置
对于私有变量(双下划线)或者保护变量(单下划线),不允许外部直接访问,类似于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) # 访问保护变量