当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。