子类创建向父类传递信息__init_subclass__方法
子类在创建的时候,就会像父类的__init_subclass__就像一个回调函数,
会收到子类的的值,以及所传递的参数。
注意是子类在创建的时候,与实例化无关。
class A: def __init_subclass__(cls, **kwargs): print('init_subclass:', cls, kwargs) class B(A):... class C(B):... # 可以在这里进行传参,非常有意思 class D(C,name='sidian'): def __init__(self, name): self.name = name d = D('sidian')
输出:
init_subclass: <class '__main__.B'> {} init_subclass: <class '__main__.C'> {} init_subclass: <class '__main__.D'> {'name': 'sidian'}
最后抄写Python学习笔记的原文:
__init_subclass__是一个隐式类型方法,在所有层次的子类型创建被调用,其甚至可接收键值参数。