|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 __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)
- c=C()
- c.x='X-man'
- print(c._x)
复制代码
疑问:在__get__方法中,返回的是self.fget(instance),也就是用‘方法名(实例名)’的方式访问C的实例方法,但访问实例方法应该用‘实例名.方法名()'的方式访问才对,把self.fget(instance)改为instance.(self.fget())运行会报错,为什么?
|
|