python中的@property使用

来源:互联网 发布:淘宝网网上购物手机 编辑:程序博客网 时间:2024/06/14 16:35

如下:

class animal(object):    def __init__(self,name,age):        self.name = name;        self.age = age;a = animal("zhuzhu",9)a.nameOut[3]: 'zhuzhu'a.ageOut[4]: 9a.age=20a.ageOut[5]: 20
在python中a.name实际用的是name属性的getter方法,a.age=20调用的是setter方法。通过@property能把python中定义的函数,当做属性访问从而提供友好的访问方式。
class Student(object):    def __init__(self, name, score):        self.name = name        self.__score = score    @property    def score(self):        return self.__score    @score.setter    def score(self, score):        if score < 0 or score > 100:            raise ValueError('invalid score')

在这段代码中,定义score函数,利用@property把它变为可访问的属性,实际上是把getter方法变成了属性,@score.setter重写了score的setter方法,并加上了相应的限制。

0 0
原创粉丝点击