我希望能够通过调用超类来初始化子类。例如,我想将“动物”作为超类,并将“狗”和“猫”作为子类。我希望能够不调用dog = Dog(“ Fido”,“ german sheppard”),而是希望将dog = Animal(“ Fido”,“ german sheppard”)命名,但是让狗的类型为Dog,而不是Animal < / p>
其背后的原因是我必须控制许多继电器,电路等。在人类可使用性的调用中,使用一种父类型似乎更清洁,但是在代码方面,不得不编写初始化以处理类型的所有不同选项。
我将其写为父类和子类没有问题。这只是一个使其变得更优雅的问题。
#这不是我的代码,但是讨论起来比我的要容易
class Pet(object):
def __init__(self, name, species):
self.name = name
self.species = 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