首页 > 其他 > 详细

特性属性 @property

时间:2018-08-29 23:19:12      阅读:217      评论:0      收藏:0      [点我收藏+]

实现其它语言所拥有的 getter 和 setter 的功能

作用:
  用来模拟一个属性
  通过@property 装饰器可以对模拟属性的取值和赋值加以控制

 

class Student:
    def __init__(self, s):
        self.__score = s  # 私有属性,不让其它人任意修改成绩

    @property
    def getscore(self):
        ‘‘‘取值实现getter方法‘‘‘
        print(正在取值)
        return self.__score

    @getscore.setter
    def setscore(self, v):
        ‘‘‘实现设置者setter,对用户的赋值加以限制‘‘‘
        assert 0 <= v <= 100, 成绩不合法
        self.__score = v


s = Student(59)
print(s.getscore)  # 希望有一个属能得到成绩
s.setscore = 80  # 通过s.score 来修改成功
print(s.getscore)  # 80

输出结果:
tarena@tedu:~/zengsf/828$ python3 exercise828.py 
正在取值
59
正在取值
80

 

特性属性 @property

原文:https://www.cnblogs.com/zengsf/p/9557429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!