描述符 MyDes:当类的属性被访问、修改或设置的时候,分别做出提醒。
class Remind:
def __init__(self,value=None,name=None):
self.name=name
self.val=value
def __get__(self,instance,owner):
print("正在获取属性%s" % self.name)
return self.val
def __set__(self,instance,value):
print("正在设置属性%s" % self.name)
self.val=value
def __delete__(self,instance):
print("正在删除属性%s" % self.name)
期望的输出效果是
>>> class Test:
x = MyDes(10, 'x')
>>> test = Test()
>>> y = test.x
正在获取变量: x
>>> y
10
>>> test.x = 8
正在修改变量: x
>>> del test.x
正在删除变量: x
>>> test.x
正在获取变量: x
8
但是实际上的结果
在set和del的时候都不打印内容这是为啥啊??