在编写java或者scala的时候,对一个类的变量等经常用到getter setter方法,在python里面同样也有对应的实例:
可以直接用 类.变量 的方式获取数据实现getter,类.变量(值)的方式实现setter方法:
定义方法如下:使用@property 和@xx.setter 标注的变量名的同名定义方法前即可实现
class Student(object):
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
调用也相对简单:
>>> s = Student()
>>> s.score = 60 # OK,实际转化为s.set_score(60)
>>> s.score # OK,实际转化为s.get_score()
60
>>> s.score = 9999
Traceback (most recent call last):
...
ValueError: score must between 0 ~ 100!