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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM