本文主要内容:
- 解释setter和getter的使用方法
- 解释@property装饰器的妙用
在python中,setter和getter方法并不像其它编程语言中的那样。基本上,在面向对象编程语言中,使用setter和getter方法的主要目的是为了确保数据的封装。不像其它面向对象编程语言,python中的私有变量并不是真正的隐藏字段。在python中,通常在以下情况会用到setter和getter方法:
- 在获取或者设置属性值的时候使用setter和getter方法为其添加验证逻辑
- 避免对类的某些字段直接访问,比如类的私有变量不应该被外部调用者直击访问或者修改
使用普通函数实现setter和getter方法
要实现setter和getter属性,只是定义普通方法get()和set()并不能反产生任何特殊的行为,例如:
class Student(object): def __int(self, age=0): self._age = age # getter方法 def get(self): return self._age # setter方法 def set(self, value): self._age = value xiaoming = Student() # 使用setter方法设置age xiaoming.set(20) # 使用getter方法返回age print(xiaoming.get()) print(xiaoming._age)
输出:
20 20