|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最后一个动手题,小甲鱼的答案有瑕疵,如果重复赋值一样的属性,counter也会增加,所以我改动了一下,但是有错误,不知道错在哪里,希望大神们指点- class Counter:
- def __init__(self):
- self.num = []
- super().__setattr__('counter',0)
- def __setattr__(self,name,value):
- if name not in self.num:
- super().__setattr__('counter',self.counter+1)
- self.num.append(name)
- super().__setattr__(name,value)
- else:
- super().__setattr__(name,value)
- def __delattr__(self,name):
- super().__setattr__('counter',self.counter-1)
- super().__delattr__(name)
-
复制代码
你的想法是先在__init__中定义self.num,然后在__setattr__中使用,但执行定义self.num时先去执行__setattr__了,就发现self.num还没定义。
|
|