使用super函式

2021-09-14 04:42:27 字數 914 閱讀 7764

__metaclass__=type#super函式只在新式類中起作用

super函式比在超類中直接呼叫未繫結方法更直觀。但這並不是它的唯一優點。

super函式實際上是很智慧型的,因此即使類已經繼承多個超類,它也只需要使用一次super函式(但要確保所有的超類的構造方法都使用了super函式)。在一些含糊的情況下使用舊式類會很彆扭(比如兩個超類共同繼承乙個超類),但能被新式類和super函式自動處理。內部的具體工作原理不用理解,但必須清楚地知道;在大多數情況下,使用新式類和super函式是比呼叫超類的未繫結的構造方法(或者其他的方法)更好的選擇。

那麼,super函式到底返回什麼?一般來說讀者不用擔心這個問題,就假裝它返回的是所需的超類好了。實際上它返回了乙個super物件,這個物件負責進行方法解析。當對其特性進行訪問時,它會查詢所有的超類(以及超類的超類),直到找到所需的特性為止(或者引發乙個attributeerror異常)。 

python之super 函式使用

super 函式用於呼叫父類 超類 的乙個方法。super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序 mro 重複呼叫 鑽石繼承 等種種問題。示例 usr bin python coding utf 8 class foopare...

Super的使用, this 與super

super 關鍵字可在子類中訪問父類的方法,也可以訪問父類的屬性 其實和this關鍵字聯絡起來對比理解就明白了 乙個三層結構的例子 b繼承a,那麼在例項化b的時候,a和b哪個構造方法先執行呢?結果 先執行a的構造方法,然後才執行b的構造方法,因為有了父類才會有子類 在jvm的物理結構 在堆中 先構造...

JAVA學習 super使用

super 可以用來修飾屬性 方法 構造器 1 當子類與父類中有同名的屬性時,可以通過 super.此屬性 顯式的呼叫父類中宣告的屬性.若想呼叫子類的同名的屬性 this.此屬性 2 當子類重寫父類的方法以後,在子類中若想再顯式的呼叫父類的被重寫的方法,就需要使用 super.方法 3 super修...