python
class MyProperty:def __init__(self,fget=None,fset=None,fdel=None):
self.fget=fget
self.fset=fset
self.fdel=fdel
def __get__(self,instance,owner):
return self.fget(instance)
def __set__(self,instance,value):
self.fset(instance,value)
def __delete__(self,instance):
self.fdel(instance)
class C:
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self,value):
self._x = value
def delx(self):
del self._x
x = MyProperty(getx,setx,delx)
这里小甲鱼在教程中定义的描述符能实现什么操作。 本帖最后由 xiaosi4081 于 2020-7-22 14:54 编辑
__init__ 实例化的时候会被自动调用
__delete__ 在使用del语句删除实例化完的对象之后就会执行里面的代码
还有,这种问题你只要百度一下就可以了,不必来论坛问
能够实现和 @property 类似的功能
这里甲鱼哥就是让我们重新个 MyProperty 描述符类,来达到和 @property 描述符一样的功能
页:
[1]