菜鸟容易中的招__setattr__

Posted 道高一尺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟容易中的招__setattr__相关的知识,希望对你有一定的参考价值。

class Counter:
        def __init__(self):
                self.counter = 0 # 这里会触发 __setattr__ 调用
        def __setattr__(self, name, value):
                self.counter += 1
“””既然需要 __setattr__ 调用后才能真正设置 self.counter 的值,所以这时候 self.counter 还没有定义,所以没法 += 1,错误的根源。”””
                super().__setattr__(name, value)
        def __delattr__(self, name):
                self.counter -= 1
                super().__delattr__(name)

 

以上是关于菜鸟容易中的招__setattr__的主要内容,如果未能解决你的问题,请参考以下文章

python中的__getattr____getattribute____setattr____delattr____dir__

Python 元类:为啥在类定义期间不调用 __setattr__ 来设置属性?

类的属性控制

面向对象进阶

python元编程之使用动态属性实现定制类--特殊方法__setattr__,__getattribute__篇

访问全局变量时模块的 __setattr__ 和 __getattr__