首页 > 代码库 > @property和@x.setter和@x.deleter表示可读可写可删除
@property和@x.setter和@x.deleter表示可读可写可删除
@property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。
1》只有@property表示只读。
2》同时有@property和@x.setter表示可读可写。
3》同时有@property和@x.setter和@x.deleter表示可读可写可删除。
[python] view plain copy
- class student(object): #新式类
- def __init__(self,id):
- self.__id=id
- @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 and 100‘)
- self._score=value
- @property #读(只能读,不能写)
- def get_id(self):
- return self.__id
- s=student(‘123456‘)
- s.score=60 #写
- print s.score #读
- #s.score=-2 #ValueError: score must between 0 and 100
- #s.score=32.6 #ValueError: score must be an integer!
- s.score=100 #写
- print s.score #读
- print s.get_id #读(只能读,不可写)
- #s.get_id=456 #只能读,不可写:AttributeError: can‘t set attribute
运行结果:
60
100
123456
@property和@x.setter和@x.deleter表示可读可写可删除
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。