breaki 发表于 2020-7-22 14:50:50

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:52:04

本帖最后由 xiaosi4081 于 2020-7-22 14:54 编辑

__init__ 实例化的时候会被自动调用

__delete__ 在使用del语句删除实例化完的对象之后就会执行里面的代码

还有,这种问题你只要百度一下就可以了,不必来论坛问

Twilight6 发表于 2020-7-22 14:54:18



能够实现和 @property 类似的功能

这里甲鱼哥就是让我们重新个 MyProperty 描述符类,来达到和 @property 描述符一样的功能

页: [1]
查看完整版本: python