1. 程式人生 > >一文詳解python的類方法,普通方法和靜態方法

一文詳解python的類方法,普通方法和靜態方法

http 接下來 方法調用 pytho 類和實例 訪問類 靜態 都是 com

技術分享圖片

  首先形式上的區別,實例方法隱含的參數為類實例self,而類方法隱含的參數為類本身cls。 靜態方法無隱含參數,主要為了類實例也可以直接調用靜態方法。

  所以邏輯上,類方法被類調用,實例方法被實例調用,靜態方法兩者都能調用。主要區別在於參數傳遞上的區別,實例方法悄悄傳遞的是self引用作為參數,而類方法悄悄傳遞的是cls引用作為參數。

接下來看用類和實例分別能否調用類屬性

技術分享圖片

故 實例方法(普通方法)應該由實例調用,類不能調用;

技術分享圖片

類方法可以由類調用,而且因為傳入了參數cls,故也可以由實例來調用。

技術分享圖片

靜態方法兩者都能調用

總結成一張表就是:

技術分享圖片

註意類實例方法調用的結果和靜態方法調用的結果的區別:

技術分享圖片

實例方法(普通方法)——————————————————————隨著實例屬性的改變而改變

類方法(無論是類調用還是實例調用)———————————————都是類屬性的值,不隨實例屬性的變化而變化

靜態方法————————————————————————————不可以訪問類屬性,故直接輸出傳入方法的值

一文詳解python的類方法,普通方法和靜態方法