|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 戴宇轩 于 2015-3-20 16:42 编辑
- 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,value):
- 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"
- >>> c.x
- Traceback (most recent call last):
- File "<pyshell#56>", line 1, in <module>
- c.x
- File "<pyshell#51>", line 7, in __get__
- return self.fget(instance)
- TypeError: getX() missing 1 required positional argument: 'value'
- >>> c._x
- 'X-man'
复制代码
|
|