如果需要设置一个参数,并且需要检验,那么就可以使用函数来检验
比如:
class student:
get_score(self):
return self.score
set_score(self,s):
self.score = s
使用:
stu = student()
stu.set_score(99)
print stu.get_score()
这样很麻烦,也不够直观。
在python中非常简单,有大神器装饰器,@property,Python内置的@property
装饰器就是负责把一个方法变成属性调用的.
把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作:
class student:
@property
score(self):
return self.score
@score.setter
score(self,s)
self.score = s
使用:
stu = student()
stu.score = 99
print stu.score
这样方便直观很多吧!
小结
@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。