|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 风风魔王 于 2020-10-9 19:04 编辑
- class Counter:
- def __init__(self):
- self.counter = 0
- def __setattr__(self, name, value):
- self.counter += 1
- super().__setattr__(name, value)
- def __delattr__(self, name):
- self.counter -= 1
- super().__delattr__(name)
复制代码 为什么颠倒self.counter += 1,super().__setattr__(name, value)这两句话
- super().__setattr__(name, value)
- self.counter += 1
复制代码 运行代码是,为什么这样什么结果也没有呢?
- a = Counter()
- a.x = 1
- a.y = 2
- print(a.counter)
复制代码
不管哪种情况都会进入无限递归,不清楚你是怎么操作的。
流程(代码行)
03->05,错误(甲鱼的题讲解里面有说)
第二种
- class Counter:
- def __init__(self):
- super().__setattr__('counter', 0)
- def __setattr__(self, name, value):
- super().__setattr__(name, value)
- self.counter += 1
- def __delattr__(self, name):
- self.counter -= 1
- super().__delattr__(name)
复制代码
06-04-06-04(无限递归)
|
|