W1ND123 发表于 2021-11-14 09:47:54

课后作业第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("噢~这个变量没法删除~")

问题:
为什么没办法删除变量?
如果可以,该怎么实现呢

傻眼貓咪 发表于 2021-11-14 10:00:19

class Student:
    def __init__(self, name = None, age = None):
      self.name = name
      self.age = age
   
    def __get__(self):
      return self.age if self.name else None
   
    def __set__(self, name, age):
      self.name = name
      self.age = age
   
    def __del__(self):
      self.name = None
      self.age = None

A = Student("小白", 87)
B = Student("小甲鱼", 99)

print("学生 A 年纪:", A.__get__())
print("学生 B 年纪:", B.__get__())

A.__set__("小黑", 18)

print(A.name, A.age)

B.__del__()

print(B.name, B.age)输出结果:学生 A 年纪: 87
学生 B 年纪: 99
小黑 18
None None
页: [1]
查看完整版本: 课后作业第46讲动手提0