确定在多重继承中调用父类构造函数的正确方法
Python 中的多重继承需要正确的处理,以确保所有父类的构造函数类被正确调用。该方法取决于父类的性质:
不相关的独立类
如果父类不是为多重继承而设计的,它们将不会调用 super() .__init__()。在这种情况下,您必须使用 ParentClass.__init__(self) 或 super().__init__() 手动调用每个父构造函数。后一种方法支持依赖注入,但如果修改父类顺序可能会导致错误。
Mixins
Mixins 是专门为多重继承而设计的类。它们自动调用继承层次结构中下一个类的构造函数。只需要在子类中调用 super().__init__() 即可调用所有父类构造函数。请记住首先从 mixin 继承,以确保始终调用其构造函数。
协作继承类
为协作继承而设计的类还会将未使用的参数转发给下一个类。与 mixins 类似,您可以在子类中调用 super().__init__() 来链式调用所有父构造函数,而不管继承类的顺序如何。协作类通常使用关键字参数来避免位置参数的潜在问题。
因此,在多重继承中调用父类构造函数的正确方法取决于父类的设计。如果没有可用的文档,则假设它们不是为多重继承而设计的,并手动处理构造函数调用。
以上是Python多重继承中如何调用父类构造函数?的详细内容。更多信息请关注PHP中文网其他相关文章!