python super

1. super并不是一個函數,是一個類名,形如super(B, self)事實上調用了super類的初始化函數,

產生了一個super對象;

2. super類的初始化函數并沒有做什么特殊的操作,只是簡單記錄了類類型和具體實例;

3. super(B, self).func的調用并不是用于調用當前類的父類的func函數;

4. Python的多繼承類是通過mro的方式來保證各個父類的函數被逐一調用,而且保證每個父類函數

只調用一次(如果每個類都使用super);

5. 混用super類和非綁定的函數是一個危險行為,這可能導致應該調用的父類函數沒有調用或者一

個父類函數被調用多次。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,757評論 0 9
  • @(python) super(type, obj) 子類中定義了同父類同名的函數后,需要顯示調用父類函數時,可以...
    orientlu閱讀 1,310評論 7 4
  • Python進階-繼承中的MRO與super @(Python)[python, python進階] [TOC] ...
    理查德成閱讀 1,574評論 2 10
  • 閱讀各種框架的源碼時,各種super滿天飛,嗯,所以又再次下決心搞懂他 先來一個比較簡單的例子 再定義一個繼承它的...
    Zliang_hhh閱讀 548評論 1 4
  • 恩,已經有幾天沒有認真的寫東西了,好像是因為過節,故意給自己找了理由而松懈。還有九天任務就結束了,兩個多月,時間過...
    小橙小橙小橙閱讀 158評論 0 0