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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何調用超級構造函數?

如何調用超級構造函數?

慕哥9229398 2019-10-13 08:04:06
如何調用超級構造函數?class A:     def __init__(self):         print("world")class B(A):     def __init__(self):        print("hello")B()  # output: hello在我使用過的所有其他語言中,超級構造函數都是隱式調用的。如何在Python中調用它?我希望super(self)但這不管用。
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

一種方法是調用A的構造函數并傳遞self作為一個論點,就像這樣:

class?B(A):
????def?__init__(self):
????????A.__init__(self)
????????print?"hello"

這種風格的優點是它非常清楚。它叫A的首字母。缺點是它不能很好地處理菱形繼承,因為您可能最終會兩次調用共享基類的初始化器。

另一種方法是使用Super(),正如其他人所展示的那樣。對于單繼承,它所做的與讓您調用父級的初始化項基本上是一樣的。

但是,Super()在底層要復雜得多,有時在多個繼承情況下可能會違反直覺。好的一面是,Super()可以用來處理鉆石形狀的繼承。如果你想知道超級()做什么的細節,我找到了關于超級()是如何工作的最好的解釋。



查看完整回答
反對 回復 2019-10-14
  • 3 回答
  • 0 關注
  • 442 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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