|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1:- class Mydesr:
- def __init__(self, fget=None, fset=None, fdel=None):
- self.fget = fget
- self.fset = fset
- self.fdel = fdel
- def __get__(self, instance, owner):
- print(instance)
- return self.fget(instance)
- def __set__(self, instance, value):
- self.fset(instance, value)
- def __del__(self, instance):
- self.fdel(instance)
- class Mypro:
- def __init__(self):
- self.x = None
-
- def getc(self):
- print(self)
- return self.x
-
- def setc(self, value):
- self.x = value
- def delc(self):
- del self.x
- x = Mydesr(getc, setc, delc)
复制代码- c = Mypro()
- File "D:\新建文件夹\描述符.py", line 19, in __init__
- self.x = None
- File "D:\新建文件夹\描述符.py", line 12, in __set__
- self.fset(instance, value)
- File "D:\新建文件夹\描述符.py", line 26, in setc
- self.x = value
- File "D:\新建文件夹\描述符.py", line 12, in __set__
- self.fset(instance, value)
- File "D:\新建文件夹\描述符.py", line 26, in setc
- self.x = value
- File "D:\新建文件夹\描述符.py", line 12, in __set__
复制代码
这段代码中和老师写(self.__x=None)的区别就是是否私有化属性。
然后出现set上的死循环。
问题1:为什么在实例化的时候就出现死循环。
问题2:为什么私有化属性就能避免死循环。 |
|