lidongze6 发表于 2018-11-15 16:18:09

第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?

lidongze6 发表于 2018-11-16 09:57:26

自己顶

塔利班 发表于 2018-11-16 10:22:05

主要是你问的大家也么看懂

lidongze6 发表于 2018-11-16 11:02:27

塔利班 发表于 2018-11-16 10:22
主要是你问的大家也么看懂

他说描述符起到的作用是间接保存指定变量的数据,这体现在哪啊?

塔利班 发表于 2018-11-16 11:09:16

体现在name存变量名,val存变量值
页: [1]
查看完整版本: 第46第0题