[英]order of inheritance in Python classes
我有一個從基類Physics
繼承的ExampleSim
類:
class Physics(object):
arg1 = 'arg1'
def physics_method:
print 'physics_method'
class ExampleSim(Physics):
print 'example physics sim'
想象一下這些包含大量代碼的類。 現在我通過定義一個新類PhysicsMod
並繼承自Physics
對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'
是的,您可以進行多重繼承。
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
的類順序ExampleSimMod
重要。 這是一篇關於這個的很棒的文章。
出於演示原因,我稍微修改了您的代碼。 希望我的回答能幫到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.