Python3类之五

#property 
class Student:

    def get_score(self):
         return self._score

    def set_score(self, value):
        if not isinstance(value, int):
            raise ValueError('score must be an integer!')
        if value < 0 or value > 100:
            raise ValueError('score must between 0 ~ 100!')
        self._score = value
stu = Student()
stu.set_score(99)
stu.get_score()###99
stu2 = Student()
#stu2.set_score(101)####error
########################
#Python内置的@property装饰器就是负责把一个方法变成属性调用的
class Student(object):

    @property
    def score(self):
        return self._score

    @score.setter
    def score(self, value):
        if not isinstance(value, int):
            raise ValueError('score must be an integer!')
        if value < 0 or value > 100:
            raise ValueError('score must between 0 ~ 100!')
        self._score = value
stu3 = Student()
stu3.score = 60
stu3.score####60
#stu3.score = 1000 #Error error
#
#不通过init来创建实例
class Date :
    def __init__(self,year,month,day) :
        self.year = year
        self.month = month
        self.day = day
d = Date.__new__(Date)
data = {'year':2012,'month':8,'day':29}
for key,value in data.items() :
    setattr(d,key,value)
d.year

转载: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143186781871161bc8d6497004764b398401a401d4cce000

posted @ 2018-09-21 15:59  凤舞琦天  阅读(102)  评论(0)    收藏  举报
https://files.cnblogs.com/files/liuguoqi/weinxin.bmp