當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python object.__init_subclass__用法及代碼示例


用法:

classmethod object.__init_subclass__(cls)

每當包含的類被子類化時,都會調用此方法。 cls 是新的子類。如果定義為普通實例方法,則此方法隱式轉換為類方法。

給新類的關鍵字參數被傳遞給父類 __init_subclass__ 。為了與使用 __init_subclass__ 的其他類兼容,應取出所需的關鍵字參數並將其他關鍵字參數傳遞給基類,如下所示:

class Philosopher:
    def __init_subclass__(cls, /, default_name, **kwargs):
        super().__init_subclass__(**kwargs)
        cls.default_name = default_name

class AustralianPhilosopher(Philosopher, default_name="Bruce"):
    pass

默認實現 object.__init_subclass__ 什麽都不做,但如果使用任何參數調用它會引發錯誤。

注意

元類提示 metaclass 被其餘類型機製使用,並且永遠不會傳遞給 __init_subclass__ 實現。實際的元類(而不是顯式提示)可以作為 type(cls) 訪問。

3.6 版中的新函數。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 object.__init_subclass__。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。