課程
/后端開發
/Python
/python進階
為什么這里的答案里面,在繼承Person類的Student類里面沒有對父類初始化,應該有一個super()函數吧?
2015-10-20
源自:python進階 6-8
正在回答
super(Teacher, self).__init__(name, gender)無非是執行父類__init__方法
好像是這樣的,自己做了實驗:
class Teacher(Person):
? ? def __init__(self, name, gender, course):
? ? ? ? #super(Teacher, self).__init__(name, gender)
? ? ? ? self.course = course
t = Teacher('Alice', 'Female', 'English')
t.gender = 'niemi'?
print t.gender
其實?t.gender = 'niemi' ?和super()函數的作用是一樣的,都是初始化函數,但前者只初始化是賦值單個初始化,而super()把整個父類都初始化了。
關鍵是沒有super()仍然可以正常運行
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-11-06
super(Teacher, self).__init__(name, gender)無非是執行父類__init__方法
2015-10-21
好像是這樣的,自己做了實驗:
class Teacher(Person):
? ? def __init__(self, name, gender, course):
? ? ? ? #super(Teacher, self).__init__(name, gender)
? ? ? ? self.course = course
t = Teacher('Alice', 'Female', 'English')
t.gender = 'niemi'?
print t.gender
其實?t.gender = 'niemi' ?和super()函數的作用是一樣的,都是初始化函數,但前者只初始化是賦值單個初始化,而super()把整個父類都初始化了。
2015-10-20
關鍵是沒有super()仍然可以正常運行