第46第0题
class MyDes:def __init__(self, initval=None, name=None):
self.val = initval
self.name = name
def __get__(self, instance, owner):
print("正在获取变量:", self.name)
return self.val
def __set__(self, instance, value):
print("正在修改变量:", self.name)
self.val = value
def __delete__(self, instance):
print("正在删除变量:", self.name)
print("噢~这个变量没法删除~")
>>> 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
其实大家如果自己认真思考了代码,会发现我们这里描述符起到的作用是间接地保存指定变量的数据。
主要是加粗的这句话每看懂,他说间接地保存了指定变量的数据是因为delet函数没有真正删除数据还是说他访问x其实是访问了initval? 自己顶 主要是你问的大家也么看懂 塔利班 发表于 2018-11-16 10:22
主要是你问的大家也么看懂
他说描述符起到的作用是间接保存指定变量的数据,这体现在哪啊?
体现在name存变量名,val存变量值
页:
[1]