亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于繼承,報錯 ''__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') ? ??#和此處報錯


正在回答

3 回答

我的天哪,完全繼承就有點不太靈活


0 回復 有任何疑惑可以回復我~

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)

0 回復 有任何疑惑可以回復我~

你用teacher 繼承了student,且缺少score參數,所以出錯,改為繼承person即可

1 回復 有任何疑惑可以回復我~
#1

慕俠6748888 提問者

我本意就是想用teacher 繼承student的,試試多重繼承!那真正的多重繼承應該怎么搞呢?
2020-10-24 回復 有任何疑惑可以回復我~
#2

慕粉15235479823 回復 慕俠6748888 提問者

Teacher 繼承 Student 時,__init__()括號中需要寫被繼承類的全部參數, super(Teacher, self).__init__(name, gender)報錯是因為缺少了Student的score參數; t = Teacher('Alice', 'Female', 'English') Teacher繼承Student的三個參數后又定義了course參數,共4個參數,這個地方少了一個參數
2020-12-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于繼承,報錯 ''__init__'' missing 1 required positional argument"score"(__init__缺少1個必需的位置參數score)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號