@property

作者: 豆豆_50dd | 来源:发表于2018-03-12 11:25 被阅读0次
限制属性的范围

set_xxx() --> 设置属性
get-xxx() --> 获取属性
在set_xxx()方法里,检查参数

class Student(object):
class Student(object):
    def get_score(self):
        return self._score
    def set_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
s = Student()
s.set_score(60)
print s.get_score()

ps:
if value <0 or value>100
规则:
当前字段名<=100.and.当前字段名>0
不在0~100内 报错(raise)

@property

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
s = Student()
s.score = 60#实际转化为s.set_score
print (s.score)#实际转化为print(s.get_score())

相关文章

网友评论

      本文标题:@property

      本文链接:https://www.haomeiwen.com/subject/kafnfftx.html