首页 >后端开发 >Python教程 >多重继承中如何调用父类 __init__` 方法?

多重继承中如何调用父类 __init__` 方法?

Linda Hamilton
Linda Hamilton原创
2024-12-04 04:39:10525浏览

How Should I Call Parent Class `__init__` Methods in Multiple Inheritance?

使用多重继承调用父类 init:理解细微差别

挑战:

In多重继承场景下,确定调用父类构造函数的正确方法可能是一个挑战。当父类遵循不一致的约定时,旧式 ParentClass.__init__(self) 和新式 super(DerivedClass, self).__init__() 方法都有其缺点。

解决方案:

正确的方法取决于所涉及的基类的设计:

1.不相关的独立类:

  • 这些类不是为多重继承而设计的。
  • 使用显式调用或 super 手动调用每个父构造函数,并仔细考虑参数传递。

2. Mixin 类:

  • 显式设计用于多重继承。
  • 代表子类自动调用第二个父构造函数。
  • 使用 super()。 mixin 中的 __init__() 传递任何未使用的参数。

3。协作继承类:

  • 与 mixins 类似,其设计允许协作继承。
  • 将所有未使用的参数传递给超类构造函数。
  • 对所有参数使用关键字参数以避免位置参数排序

重要提示:

如果基类没有明确提及其继承设计,则可以安全地假设它们不是为协作设计的遗产。为了一致性和清晰度,坚持显式构造函数调用或 super 与 ParentClass.__init__(self) 。

以上是多重继承中如何调用父类 __init__` 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn