子类创建向父类传递信息__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__是一个隐式类型方法,在所有层次的子类型创建被调用,其甚至可接收键值参数。

 

posted @ 2020-09-23 11:28  就是想学习  阅读(696)  评论(0编辑  收藏  举报