|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码是
>>> 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__(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)
>>> c=C()
>>> c.x=4
>>> c.x
4
那么 我的问题是 它是怎么把 class C 的 getX传给MyProperty里__get__()方法的中的instance的
因为我打印了一下 这个instance在return self.fget(instance)的函数里是instance: <__main__.C object at 0x0000000002B3F898>
表明它是c 它是C()的一个实例化对象 这个实例化对象怎么判断它是getX
我是这么认为的
当c=C()且c.x=4以后 输入了c.x马上会启动Myproperty 而输入c.x回车属于调用的行为 则马上触及__get__()方法 而不是马上把getX赋给fget
如果这样 getX怎么赋给__get__()的 |
|