Python 动态多重继承或混合

Python 动态多重继承或混合,python,oop,multiple-inheritance,mixins,Python,Oop,Multiple Inheritance,Mixins,我试图理解如何在我的程序中实现多重继承或混合 我的想法是,我有一个汽车类,使用mixin添加不同性能的助推器,如冷空气进气和增压器的方法。虽然我知道这不起作用,但还是像下面这样 car1 = Car(Turbocharger, ColdAirIntake) car2 = Car(Supercharger) car3 = Car(Nitrous) 我找到了这个例子,但不确定这是否是我所想的正确方法 您可以通过动态定义汽车类别来创建实例: def make_car(*base): 动态车辆等级(*

我试图理解如何在我的程序中实现多重继承或混合

我的想法是,我有一个汽车类,使用mixin添加不同性能的助推器,如冷空气进气和增压器的方法。虽然我知道这不起作用,但还是像下面这样

car1 = Car(Turbocharger, ColdAirIntake)
car2 = Car(Supercharger)
car3 = Car(Nitrous)
我找到了这个例子,但不确定这是否是我所想的正确方法


您可以通过动态定义汽车类别来创建实例:

def make_car(*base):
动态车辆等级(*底座,车辆):
通过
返回动力车()
car1=制造车辆(涡轮增压器、Coldairinkake)
car2=制造汽车(增压器)
car3=制造汽车(硝基)

我不确定我是否完全理解您,但如果您只想理解您提到的内容,请看以下简单示例:

class Turbocharger(dict):
    # Define any class attributes.
    def __init__(self):
        # Define any instance attributes here.
        super().__init__()
 
    def __call__(self, *others):
        for other in others:
            # You'd want to check if it's a mixin, isinstance()?
            self.update(other)


class Supercharger(dict):
    # Same stuff here.

基本上,这些mixin中的每一个都只是使用作为
\uuu调用的参数传递的其他mixin来“更新”自己。这些类只是增加了一些语法上的糖分。

现在,当我在回答问题后再次阅读这个问题时,我对你预期的行为更加困惑。这可能太离谱了,但如果对任何人都有帮助的话,我会把它放在这里。我自己从来没有遇到过这样的情况,但我可能很少看到:d.与其子类化,不如将各种组件类型的实例列表传递给
Car.\uuu init\uuuu
,例如
car1=Car(涡轮增压器(),ColdAirIntake())
。如果不知道所有类是如何定义的,以及它们是如何组合在一起的,很难说。