Python继承-多个超类

Python继承-多个超类,python,oop,inheritance,Python,Oop,Inheritance,这是创建从10个以上类继承的类的python方法吗?或者我应该考虑一种不同的方法? 它是允许的,也可以考虑创建一个复合对象,一个对象有其他对象作为成员,而不是继承它们。 关于合成概念的wiki: python中的多重继承: 这些应该有助于您理解,然后决定在您的程序上下文中什么更适合您。多重继承在Python中是有效的,但并不经常使用。我看到的大多数用例都是(小片段混合到主继承树中) 创建一个有10个父类的类在任何OOP语言中都是一个坏消息,而不是pythonic。您应该将类重构为另一种抽象。是的

这是创建从10个以上类继承的类的python方法吗?或者我应该考虑一种不同的方法?

它是允许的,也可以考虑创建一个复合对象,一个对象有其他对象作为成员,而不是继承它们。 关于合成概念的wiki:

python中的多重继承:


这些应该有助于您理解,然后决定在您的程序上下文中什么更适合您。

多重继承在Python中是有效的,但并不经常使用。我看到的大多数用例都是(小片段混合到主继承树中)


创建一个有10个父类的类在任何OOP语言中都是一个坏消息,而不是pythonic。您应该将类重构为另一种抽象。

是的,以完全合法的方式从多个类继承。然而,如果您有10个超类,那么您可能需要调整您的继承树。也许有些类可以由中间类继承,这样最终的类就可以从较少的类继承

您还应该了解合成,它可能为您正在尝试的工作提供更清洁的解决方案

在Python中继承许多类(超过10个)可以吗

它是“OK”,因为Python将接受它,并且不会中断或崩溃

< P>是创建类的Python方式,还是应该考虑不同的方法?

最确定的是,它不是创建类的“pythonic”方法。拥有许多父类只会加剧众所周知的拥有少数父类(,等等)的问题,而且会使类直接依赖于许多其他类,并且很难追踪类中的每个行为来自何处。这违背了Python中简单性的一般精神(或一般的良好编程实践)


请注意,使另一个类的子类建立“是”关系。你们班真的有这十样东西吗?或者您只是为了获得一些已经实现的行为而进行继承?查找一些面向对象设计的基本原则,例如,为什么有时我们可能更喜欢,以及其他架构模式,例如。

通常最好避免多重继承。10听起来太过分了。考虑包容(即成员对这10个类中的一些进行实例化)。