Python学习随机(第二弹)

来源:互联网 发布:西门子ug软件侵权 编辑:程序博客网 时间:2024/06/08 11:13

1.  property函数

在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改。为了限制属性的范围,可以通过一个setter方法来设置属性,再通过一个getter来获取属性,这样,在setter方法里,就可以检查参数合理性,但是这样又略显复杂。那么,有没有一种简单的方法,可以实现书写简单有可以检查属性呢?

  • 使用property([fget[, fset[, fdel[, doc ]]]])(私有变量)

class student:    def __init__(self):        self.__score = None    def getscore(self):        return self.__score    def setscore(self,value):        self.__score = value    def delscore(self):        del self.__score    qscore = property(getscore,setscore,delscore,"I'm the 'score' property.")
stu = student()print 'student.score: %s' % stu.qscorestu.qscore = 80print 'student.score: %s' % stu.qscoredel stu.qscoreprint 'student.score: %s' % stu.qscore
可以通过stu.qscore的方式,对score属性进行取值和赋值操作了
  • @property,@对象.setter
class teacher:    def __init__(self):        self.__score = None    @property    def score(self):        return self.__score    @score.setter    def score(self,value):        self.__score = value    @score.deleter    def score(self):        del self.__scoretch = teacher()print 'teacher.score: %s' % tch.scoretch.score = 60print 'teacher.score: %s' % tch.scoredel tch.scoreprint 'teacher.score: %s' % tch.score


0 0
原创粉丝点击