15、@property:将方法当作属性来调用

来源:互联网 发布:视频去水印软件 编辑:程序博客网 时间:2024/06/08 01:21

一、使用 @property 的好处

  • 可以让调用者写出简短的代码
  • 保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。

二、@property 的使用

  • 把一个getter方法变成属性:只需要在所定义的method(self)方法上方加 @property 就可以了
  • 把一个setter方法变成属性赋值:在重写的 method(self, param)方法上方加上@method.setter
  • 只读属性:只定义getter方法,不定义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 = values = Student()s.score = 60  # 属性赋值print('s.score =', s.score)  # 取得属性的值>s.score = 60s.score = 666  # 超出属性参数范围,报错>ValueError: score must between 0 ~ 100!

三、参考资料

1、廖雪峰:使用@property
2、Python进阶之“属性(property)”详解

原创粉丝点击