如何通过调用超类来初始化子类

时间:2019-01-20 11:21:55

标签: python subclass superclass

我希望能够通过调用超类来初始化子类。例如,我想将“动物”作为超类,并将“狗”和“猫”作为子类。我希望能够不调用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

0 个答案:

没有答案