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

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

什么時候寫super,多重繼承怎么寫?

為什么參考答案沒有寫super(Student, self).__init__(name, gender)

如果要寫的話,就這個題而言要怎么寫

super(Person, self).__init__(name, gender)

super(Student, self).__init__(class)

super(BasketballMixin, self).__init__(number)

是這樣分開寫嗎?然后__init__可以換成別的函數名(自己定的)?

正在回答

3 回答

題目中并沒有name,gender這些類屬性

所以沒有寫super

要寫的話我舉個例子:

#Person擁有name,gender這些類屬性,

Student繼承Person時就要在__init__里寫上 : super(Student,?self).__init__(name,?gender)

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

一定要用 super(Student, self).__init__(name, gender) 去初始化父類,否則,繼承自 Person 的 Student 將沒有 name 和 gender。


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

水與紙 提問者

謝謝你
2019-03-17 回復 有任何疑惑可以回復我~

至于什么時候寫super什么時候不寫取決于你是否想在子類中去繼承父類的一些屬性,如果你想繼承父類的name,gender屬性你就寫super(Student,?self).__init__(name,?gender)去初始化,如果你的子類不需要父類的屬性也就不需要寫了(如此節中的例子)。ps:此節中也是因為父類沒有啥屬性可繼承,笑哭


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

題目中并沒有name,gender這些類屬性

所以沒有寫super

要寫的話我舉個例子:

#Person擁有name,gender這些類屬性,

Student繼承Person時就要在__init__里寫上 : super(Student,?self).__init__(name,?gender)

class?Person(object):
????def?__init__(self,?name,?gender):
????????self.name?=?name?
????????self.gender?=?gender
????????
class?Student(Person):
????def?__init__(self,?name,?gender,?score):
????????
????????self.score?=?score

一定要用 super(Student, self).__init__(name, gender) 去初始化父類,否則,繼承自 Person 的 Student 將沒有 name 和 gender。



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

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

什么時候寫super,多重繼承怎么寫?

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

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

幫助反饋 APP下載

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

公眾號

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