码迷,mamicode.com
首页 > 其他好文 > 详细

特性属性 @property

时间:2018-08-30 00:13:30      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:prope   输出   set   sse   tar   setter   int   实现   getter   

实现其它语言所拥有的 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

标签:prope   输出   set   sse   tar   setter   int   实现   getter   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!