メソッド/プロパティの共通セットを同じクラスから派生したサブクラスに追加する適切な方法は何ですか?
これらは、動物に基づくビデオゲームに必要な私のクラスであるとしましょう (これは単なる例です。実際にゲームを書いているわけではありませんが、考え方は同じです)。
class Animal():
def __init(self, numlegs):
self.numlegs = numlegs
class Dog(Animal):
def __init(self, numlegs):
Animal.__init__(self, numlegs)
def bark(self):
print "Arf!"
class Cat(Animal):
def __init(self, numlegs):
Animal.__init__(self, numlegs)
def playwithmouse(self):
print "It's fun!"
class Duck(Animal):
def __init(self, numlegs):
Animal.__init__(self, numlegs)
def fly(self):
print "Weee!"
ゲームの特定の時点で、Dog と Duck を武器化することができます。これらには同じメソッド (fire()、reload()) およびプロパティ (ammocount) が必要です。
ゲームのまったく別の部分で必要になるため、Animal() クラスに追加するのは正しくないと思います。
それらを追加する正しいアプローチは何でしょうか?
更新 予想される結果は、ある種の動物であることを追加したかった-武器ハイブリッドクラスのような
class BurtalDuck(Duck):
fire(): #<- this is somehow added to Duck
print "ratatatatat!"
私が答えから得たのは、「武器/弾薬」のセット全体が必要な場合はマルチクラスを使用できるということです。