Python中的__init_subclass__方法具体是做什么的?

2026-06-11 10:520阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计439个文字,预计阅读时间需要2分钟。

Python中的__init_subclass__方法具体是做什么的?

python什么是 __init_subclass__ class Hook?

def __init_subclass__(cls, **kwargs): print(初始化子类, cls, kwargs)

class A(Hook, name=satori, age=16): pass

什么是__init_subclass__

class Hook: def __init_subclass__(cls, **kwargs): print("__init_subclass__", cls, kwargs) class A(Hook, name="satori", age=16): pass """ __init_subclass__ <class '__main__.A'> {'name': 'satori', 'age': 16} """

首先我们定义了一个Hook类,然后让A这个类继承它。发现我们还没有没有实例化,而是在创建类的时候就有输出结果了。

对于一个类,如果这个类被作为父类继承,那么会触发其内部的__init_subclass__方法,这里的Hook被A继承,那么Hook中的__init_subclass__就会被触发。而且看到,里面的cls,就是我们的A,也就是继承它的类,**kwargs,就是我们额外传递的参数。

但是我们发现,第一个参数不是self,而是cls,而且这个cls还不是我们的Hook,而是继承它的类。

阅读全文

本文共计439个文字,预计阅读时间需要2分钟。

Python中的__init_subclass__方法具体是做什么的?

python什么是 __init_subclass__ class Hook?

def __init_subclass__(cls, **kwargs): print(初始化子类, cls, kwargs)

class A(Hook, name=satori, age=16): pass

什么是__init_subclass__

class Hook: def __init_subclass__(cls, **kwargs): print("__init_subclass__", cls, kwargs) class A(Hook, name="satori", age=16): pass """ __init_subclass__ <class '__main__.A'> {'name': 'satori', 'age': 16} """

首先我们定义了一个Hook类,然后让A这个类继承它。发现我们还没有没有实例化,而是在创建类的时候就有输出结果了。

对于一个类,如果这个类被作为父类继承,那么会触发其内部的__init_subclass__方法,这里的Hook被A继承,那么Hook中的__init_subclass__就会被触发。而且看到,里面的cls,就是我们的A,也就是继承它的类,**kwargs,就是我们额外传递的参数。

但是我们发现,第一个参数不是self,而是cls,而且这个cls还不是我们的Hook,而是继承它的类。

阅读全文