我已经创建了一个接受参数name和colour的“Animal”类,以及一个名为“Pig”的子类,它应该从“Animal”继承name和{},但也应该采用一个新的参数TailType。在
以下是我目前所做的:class Animal(object):
def __init__(self, name, colour):
self.name = name
self.colour = colour
def get_name(self):
return self.name
def set_name(self, newName = ""):
self.name = newName
def set_colour(self, newColour = ""):
self.colour = newColour
def get_colour(self):
return self.colour
def __str__(self):
return self.get_name() + ' : ' + self.colour
class Pig(Animal):
def __init__(self, name, colour, tailType):
super().__init__()
self.tailType = tailType
当我初始化“Pig”类时,我不确定在__init__定义中放入哪些参数;应该是name和{},还是name+colour+tailType?在
另外,这个子类是继承了Animal的__str__表示方法,还是必须在“Pig”子类中重新编写它?在
当我初始化一个子类时,我真的不确定哪些参数会去哪里。我看过一些例子,它们都有非常简单的例子,只有一个参数(self)。在
如果我想这么做
john = Pig('John', 'pink', 'curly')
我明白了
TypeError: __init__() missing 2 required positional arguments: 'name' and 'colour'。在
超类和子类在概念上是有意义的,但是当涉及到处理它们的语法时,我真的很挣扎。在
注意:请不要让我参考关于什么是超类构造函数的一般性解释:我读了很多超类构造函数,但仍然不知道如何在这种情况下应用它们。在