我有一个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'
bearzk.. 6
是的,您可以进行多重继承。
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
事项的上课顺序。这是一篇很棒的文章。
我出于示范原因对您的代码做了一些修改。希望我的回答能对您有所帮助!
是的,您可以进行多重继承。
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
事项的上课顺序。这是一篇很棒的文章。
我出于示范原因对您的代码做了一些修改。希望我的回答能对您有所帮助!