Python
class My: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 = My(getx,setx,delx)
c = C()
c.x='yjc'
c.x
'yjc'
c._x
'yjc'
为什么c._x也是yjc。 因为 c.x = 'yjc' 这一句 会调用 c.setx('yjc') 方法,将 c._x 也设置为 'yjc' 。 zltzlt 发表于 2020-7-20 18:26
因为 c.x = 'yjc' 这一句 会调用 c.setx('yjc') 方法,将 c._x 也设置为 'yjc' 。
class My:
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)
这一串代码有什么用。 breaki 发表于 2020-7-20 18:42
class My:
def __init__(self,fget=None,fset=None,fdel=None):
self.fget=fget
定制一个自己的 property 。
页:
[1]