python-3.x 类型错误:.__init__()接受1个位置参数,但实际给出了4个

qyyhg6bp  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(151)

我遇到以下代码的TypeError:

class Student:
    def __init__(self, name,age,subject):
        self.name = name
        self.age = age
        self.subject = subject

    def subjchoosen(self):
        print("The subject choosen is",self.subject )

class Science(Student):
    def __init__(self):
        super().__init__(name, age,subject)
        super().subjchoosen()

name = "Test"
age = 12
subject = "Science"
Sc=Science(name,age,subject)

如果我创建的对象是Sc= Science(),而没有传递任何参数,我将得到输出。有人能解释一下为什么会发生这种情况吗?

eyh26e7m

eyh26e7m1#

您还必须将name, age, subject参数放入Science类的__init__方法中,因为现在它只需要self。
正确的方法是:

class Science(Student):
     def __init__(self, name, age, subject):
         super().__init__(name, age,subject)
         super().subjchoosen()

相关问题