有一个疑问,还望解答
Topic source我的理解是@property只是简化了访问类的变量的过程 没有@property之前要调用set和get函数
>>> s.set_score(60) # ok!
>>> s.get_score()
60
加上@property之后访问能更方便:
>>> s.score = 60 # OK,实际转化为s.set_score(60)
>>> s.score # OK,实际转化为s.get_score()
60
getter方法和、setter方法还是要自己定义的。 至于@property创建的是 @函数名.setter 这是内置的@property装饰器本身定义的吧。
- 1
aio2014
“此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值” 我对这句话不是很明白,@score.setter是@property创建的,那么为什么我们还要再在代码中写出?还有怎么知道@property创建的是@score.setter而不是@score.a或@setter.score?