#coding:utf-8 #@property负责装饰一个实例方法让其生成对应的setter和getter方法,调用时可以直接 使用对象名.函数名这种类似于属性的调用方法 class People(object): #@property是将work函数声明成为一个getter函数,getter函数是进行取值的操作 @property def work(self): return self._time #@work必须和上面的work函数名保持一致 #声明一个work函数对应的setter函数,setter函数进行属性赋值的操作 @work.setter def work(self,value): if isinstance(value,int): self._time = value else: raise ValueError('value args 不符合要求') @work.deleter #该装饰器相当于给work函数绑定一个删除属性的功能 def work(self): #删除之前判断属相是否存在 if hasattr(self,'_time'): del self._time else: raise ValueError('self,_name attribute 不存在') print '_time属性被删除了' p1 = People() #调用setter函数,给属性self._time赋值 #对象名.函数名如果在=号左侧,这是在调用setter方法 #10就是给work函数传递的实参,将10赋值给value p1.work = 10 #调用getter函数,获取self._time的值 res = p1.work print res #调用deleter函数,删除_time属性值 del p1.work del p1.work
@property装饰器
最新推荐文章于 2024-07-19 12:45:00 发布