|
|
5鱼币
class Counter:
def __init__(self):
super().__setattr__('counter', 0)
def __setattr__(self, name, value):
super().__setattr__('counter', self.counter + 1)
super().__setattr__(name, value)
def __delattr__(self, name):
super().__setattr__('counter', self.counter - 1)
super().__delattr__(name)
第一处是不懂在def ___setattr__(self, name, value)中就有self,而在它下面的super().__setattr__(name, value)中为啥就没有self呢?
第二次是在第二个和第三个魔法方法的重新过程中要有super().__setattr__(name, value)和super().__delattr__(name)这两个语句?表示看不太懂。 求助。。。。。。。。。。 |
最佳答案
查看完整内容
>>> c = Counter() #实例化
>>> c.counter #这时计数器为0
0
>>> c.a = 123 #设置一个变量
>>> c.counter #+1,这是 super().__setattr__('counter', self.counter + 1)起作用
1
>>> c.a #这是super().__setattr__(name, value)起作用,你看看去掉这行会怎样样?
123
|