Python学习随机(第二弹)

时间:2021-07-22 07:22:30

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.qscore
stu.qscore = 80
print 'student.score: %s' % stu.qscore
del stu.qscore
print '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