子類創建向父類傳遞信息__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