假设有一段代码,其中: Word 类和一对从第一个类继承的 Noun 和 Verb 类。尝试编译时,在添加 Noun("dog") 的第一个实例时,出现错误:TypeError: __init__() takes 1 positional argument but 2 were given
class Word:
def __init__(self, text):
self.text = text
class Noun(Word):
def __init__(self):
self.part = "существительное"
class Verb(Word):
def __init__(self):
self.part = "глагол"
words = []
words.append(Noun("собака"))
words.append(Verb("ела"))
words.append(Noun("колбасу"))
请帮忙 - 我不知道我做错了什么。
当被调用时,类
Noun("собака")
被调用。 它不接受变量:__init__
Noun
其次,当
Noun("собака")
__init__
类被调用时,Word
它不会被调用。调用它:总的来说,您的代码应该是:
在后代类中,在类初始化方法中,您没有指定
text
要为其分配文本值的参数。该命令的解释器
Noun("собака")
看到__init__
类方法Noun
并没有在其中找到第二个参数(第一个始终是self
)。<__main__.Noun object at 0x0000000002985EB8> <__main__.Verb object at 0x0000000002998B38> <__main__.Noun object at 0x0000000002998B70> собака ела колбасу