跳转至

Python面向对象

class的__init____call__区别

  • 虽然形式上看__init____call__都是直接括号调用,但是==python的类必须先实例化才能执行__call__==,也就是__call__只能由类实例对象调用,__init__通过类名对象进行实例化。

class的__dict__属性

  • python类的__dict__以字典形式保存类的属性,可以通过此属性修改类变量的值

  • 一种常用的方式将字典转换成类的属性的方式:

class Config:
    def __init__(self, entries: dict = {}):
        for k, v in entries.items():
            if isinstance(v, dict):
                self.__dict__[k] = Config(v)
            else:
                self.__dict__[k] = v