python中metaclass的工作原理
class TMetaclass(type):
def __new__(cls, name, bases, attrs):
print(cls, name, bases, attrs)
return type.__new__(cls, name, bases, attrs)
# class T(dict, metaclass=TMetaclass):
# def __init__(self, **kw):
# super(T, self).__init__(**kw)
class T(dict, metaclass=TMetaclass):
pass
class Test(T):
pass
class Test1(Test):
pass
a = Test1()
输出:
<class '__main__.TMetaclass'> T (<class 'dict'>,) {'__module__': '__main__', '__qualname__': 'T'}
<class '__main__.TMetaclass'> Test (<class '__main__.T'>,) {'__module__': '__main__', '__qualname__': 'Test'}
<class '__main__.TMetaclass'> Test1 (<class '__main__.Test'>,) {'__module__': '__main__', '__qualname__': 'Test1'}
[Finished in 0.1s]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步