python的@property
2015-08-06 15:10
656 查看
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把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作。还可以定义只读属性,只定义getter方法,不定义setter方法就是一个只读属性
相关文章推荐
- python的__slots__
- Python 异常
- Python 异常
- Python 异常
- python切片操作
- python数据持久化
- Python命名空间和作用域窥探
- 随机红包生成算法-python实现
- python join 和 split
- Python小技巧之——巧用with语句实现异常处理
- python的闭包
- python工具-------随机生成密码文件
- Python抓取小说
- 初窥Python(四)——三种方法判断python变量类型
- python 批量重命名
- Python二维码生成库qrcode安装和使用示例
- MyEclipse10中配置开发Python所需要的PyDev 绝对靠谱 不忽悠!
- 【Python】Python与文本处理langid工具包的文本语言检测和歧视
- Python contextlib——上下文管理器
- 深入理解Python中命名空间的查找规则LEGB