Python 超级构造函数——您将哪些参数放入子方法中?
Python super constructors -- which arguments do you put in the child method?
我创建了一个接受参数 name
和 colour
的 "Animal" class,以及一个名为 "Pig" 的子 class它应该从 "Animal" 继承 name
和 colour
,但也应该采用新参数 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" class 时,我不确定要在 __init__
定义中放入哪些参数;应该是 name
和 colour
,还是 name
+ colour
+ tailType
?
另外,这个subclass是继承了Animal的__str__
表示方法,还是我必须在"Pig" subclass里面再写一遍?
当我初始化一个 subclass 时,我真的不确定哪些参数放在哪里。我看过示例,它们都有非常简单的情况,只有一个参数 (self)。
如果我尝试做
john = Pig('John', 'pink', 'curly')
我明白了
TypeError: __init__() missing 2 required positional arguments: 'name' and 'colour'
。
Superclasses 和 subclasses 在概念上是有道理的,但是在处理它们的语法时,我真的很吃力。
注意:请不要让我参考超级class构造函数的一般解释:我已经阅读了很多,但仍然不知道如何在这种情况下应用它们.
只需传递 name
和 colour
。
class Pig(Animal):
def __init__(self, name, colour, tailType):
super().__init__(name, colour)
self.tailType = tailType
将其视为 super()
为我提供了来自父对象的绑定到我的对象的方法。它需要什么作为输入? name
和 colour
?让我们通过它name
和colour
,然后。
是的,__str__
像任何其他方法一样被继承。
我创建了一个接受参数 name
和 colour
的 "Animal" class,以及一个名为 "Pig" 的子 class它应该从 "Animal" 继承 name
和 colour
,但也应该采用新参数 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" class 时,我不确定要在 __init__
定义中放入哪些参数;应该是 name
和 colour
,还是 name
+ colour
+ tailType
?
另外,这个subclass是继承了Animal的__str__
表示方法,还是我必须在"Pig" subclass里面再写一遍?
当我初始化一个 subclass 时,我真的不确定哪些参数放在哪里。我看过示例,它们都有非常简单的情况,只有一个参数 (self)。
如果我尝试做
john = Pig('John', 'pink', 'curly')
我明白了
TypeError: __init__() missing 2 required positional arguments: 'name' and 'colour'
。
Superclasses 和 subclasses 在概念上是有道理的,但是在处理它们的语法时,我真的很吃力。
注意:请不要让我参考超级class构造函数的一般解释:我已经阅读了很多,但仍然不知道如何在这种情况下应用它们.
只需传递 name
和 colour
。
class Pig(Animal):
def __init__(self, name, colour, tailType):
super().__init__(name, colour)
self.tailType = tailType
将其视为 super()
为我提供了来自父对象的绑定到我的对象的方法。它需要什么作为输入? name
和 colour
?让我们通过它name
和colour
,然后。
是的,__str__
像任何其他方法一样被继承。