如何实现Porperty装饰器?
今天简单的实现下Porperty装饰器
demo:
站在用户的角度思考问题,与客户深入沟通,找到自流井网站设计与自流井网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名、网络空间、企业邮箱。业务覆盖自流井地区。
class Porperty:
def __init__(self, fget= None, fset= None, fdel = None):
self.fget= fget
self.fset = fset
self.fdel = fdel
def __get__(self, instance, cls):
if instance is None:
return self
if not callable(self.fget):
raise AttributeError
return self.fget(instance)
def __set__(self, instance, value):
if not callable(self.fset):
raise AttributeError
return self.fset(instance, value)
def __delete__(self, instance):
if not callable(self.fdel):
raise AttributeError
return self.fdel(instance)
def setter(self, fset):
self.fset = fset
return self.fset
def deleter(self, fdel):
self.fdel = fdel
return self.fdel
class A:
def __init__(self,x):
self._x = x
@Porperty
def x(self):
return self._x
a =A(4)
a.x
a.x = 123
class A:
def __init__(self,x):
self._x = x
@Porperty
def x(self):
return self._x
@x.setter
def set_x(self, value):
self._x = value
a = A(5)
a.x
a.x = 7
当前题目:如何实现Porperty装饰器?
新闻来源:http://cdiso.cn/article/jdjdce.html