我有一个类ExampleSim
,它来自基类Physics
:
class Physics(object):
arg1 = 'arg1'
def physics_method:
print 'physics_method'
class ExampleSim(Physics):
print 'example physics sim'
想象一下这些类包含大量代码。
现在我通过定义新的类Physics
并继承自PhysicsMod
对Physics
进行了一些修改:
class PhysicsMod(Physics):
arg1 = 'modified arg1'
还有ExampleSim
我为其创建了一个新课程ExampleSimMod
并继承自ExampleSim
:
class ExampleSimMod(ExampleSim):
print 'modified example sim'
我的问题是,ExampleSimMod
继承自ExampleSim
继承自Physics
,我希望其继承自PhysicsMod
。有没有办法做到这一点?可能通过super()
或多重继承?
class ExampleSimMod(ExampleSim, PhysicsMod):
print 'modified example sim'
答案 0 :(得分:4)
是的,你可以做多重继承。
class Physics(object):
def physics_method(self):
print 'physics'
class ExampleSim(Physics):
def physics_method(self):
print 'example sim'
class PhysicsMod(Physics):
def physics_method(self):
print 'physics mod'
class ExampleSimMod(PhysicsMod, ExampleSim):
pass
e = ExampleSimMod()
e.physics_method()
// output will be:
// physics mod
请注意ExampleSimMod
事项中的课程顺序。这是一个great article。
出于演示原因,我修改了一些代码。希望我的回答可以帮到你!