sunyt 发表于 2021-12-17 11:09:58

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 __del__(self, instance):
                self.fdel(instance)



class C:
        def __init__(self):
                self.x = None
        def getX(self):
                return self._x
        def setX(self):
                self._x = value
        def delX(self):
                del self._x
        x = MyProperty(getX, setX, delX)


上面是完整代码,我的问题是self.fget明明是属性(变量),为什么能传入参数

kogawananari 发表于 2021-12-17 11:26:10

__del__是什么鬼 你在哪学的

清少呐 发表于 2021-12-17 11:36:28

kogawananari 发表于 2021-12-17 11:26
__del__是什么鬼 你在哪学的

__del__不是删除的方法吗

傻眼貓咪 发表于 2021-12-17 11:43:58

冒昧问一下,楼主你真正想问的问题是什么?{:10_260:}

kogawananari 发表于 2021-12-17 13:29:29

清少呐 发表于 2021-12-17 11:36
__del__不是删除的方法吗

你先百度 描述符 再看看删除方法写错了没

sunyt 发表于 2021-12-17 14:52:14

kogawananari 发表于 2021-12-17 13:29
你先百度 描述符 再看看删除方法写错了没

我理解了,我原本想问的是为什么参数后面能加括号(如: self.fget(instance)),我现在理解了,
我知道这个代码是错的(应该是__delete__),
还有,谢谢回答我的问题.
页: [1]
查看完整版本: python学习中的问题