@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