今天简单的实现下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.fdelclass A: def __init__(self,x): self._x = x @Porperty def x(self): return self._xa =A(4)a.xa.x = 123class A: def __init__(self,x): self._x = x @Porperty def x(self): return self._x @x.setter def set_x(self, value): self._x = valuea = A(5)a.xa.x = 7