關于繼承,報錯 ''__init__'' missing 1 required positional argument"score"(__init__缺少1個必需的位置參數score)
我把教學的代碼復制回來,改成Student繼承?Person的?name, gende,Teacher繼承Student的name, gende。運行后就如題報錯了。然后在Teacher那里多加了score,就能運行了。這算什么?只能繼承全部,然后覆寫或變私有?
class Person(object):
? ? def __init__(self, name, gender):
? ? ? ? self.name = name
? ? ? ? self.gender = gender
class Student(Person):
? ? def __init__(self, name, gender, score):
? ? ? ? super(Student, self).__init__(name, gender)
? ? ? ? self.score = score
class Teacher(Student):
? ? def __init__(self, name, gender, course):
? ? ? ? super(Teacher, self).__init__(name, gender) ? #此處報錯
? ? ? ? self.course = course
p = Person('Tim', 'Male')
s = Student('Bob', 'Male', 88)
t = Teacher('Alice', 'Female', 'English') ? ??#和此處報錯
2021-01-08
我的天哪,完全繼承就有點不太靈活
2020-12-16
class Teacher(Student):
??? def __init__(self, name, gender, score, course):
??????? super(Teacher, self).__init__(name, gender,score)
??????? self.course = course
t2 = Teacher('Bob', 'boy', 88, 'Math')
print('tname:', t2.name)
print('tgender', t2.gender)
print('tscore',t2.score)
print('tcourse',t2.course)
2020-10-24
你用teacher 繼承了student,且缺少score參數,所以出錯,改為繼承person即可