課程
/后端開發
/Python
/python進階
繼承不是為了繼承里面原來的屬性和值么,不初始化的話,會有什么問題?
2015-04-04
源自:python進階 5-1
正在回答
super(Student,self).__init__()
這是對繼承自父類的屬性進行初始化。而且是用父類的初始化方法來初始化繼承的屬性。
也就是說,子類繼承了父類的所有屬性和方法,父類屬性自然會用父類方法來進行初始化。
當然,如果初始化的邏輯與父類的不同,不使用父類的方法,自己重新初始化也是可以的。
a412739861 提問者
#!/usr/bin/env?python #?-*-?coding:utf-8?-*- class?Person(object): ????def?__init__(self,name,gender,age): ????????self.name?=?name ????????self.gender?=?gender ????????self.age?=?age class?Student(Person): ????def?__init__(self,name,gender,age,school,score): ????????#super(Student,self).__init__(name,gender,age) ????????self.name?=?name.upper()?? ????????self.gender?=?gender.upper() ????????self.school?=?school ????????self.score?=?score s?=?Student('Alice','female',18,'Middle?school',87) print?s.school print?s.name
例如這樣,父類對name和gender的初始化只是簡單的賦值,
但子類要求字母全部大寫。
魚兒游啊游
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-05-05
這是對繼承自父類的屬性進行初始化。而且是用父類的初始化方法來初始化繼承的屬性。
也就是說,子類繼承了父類的所有屬性和方法,父類屬性自然會用父類方法來進行初始化。
當然,如果初始化的邏輯與父類的不同,不使用父類的方法,自己重新初始化也是可以的。
2015-05-05
例如這樣,父類對name和gender的初始化只是簡單的賦值,
但子類要求字母全部大寫。