例えば:
class Pet(object):
def __init__(self, name, species):
self.name = name
self.species = species
def getName(self):
return self.name
def getSpecies(self):
return self.species
def __str__(self):
return "%s is a %s" % (self.name, self.species)
class Dog(Pet):
def __init__(self, name, chases_cats):
Pet.__init__(self, name, "Dog")
self.chases_cats = chases_cats
def chasesCats(self):
return self.chases_cats
ご覧のとおり、犬はペットから受け継いでいます。私はコードを完全に理解しています。しかし、なぜ犬のクラスでペットのinitを呼び出す必要があるのでしょうか。犬のクラスの最初の行(class Dog(Pet))のように単にそれを呼び出さないのはなぜですか?厄介なコードしか作成されていないようです。それは私にとってPythonの継承のポイントを殺してしまいます。