Python中至少有三種比較常見的方法類型,即實例方法,類方法、靜態方法。它們是如何定義的呢?如何調用的呢?它們又有何區別和作用呢?且看下文。
首先,這三種方法都定義在類中。下面我先簡單說一下怎么定義和調用的。(PS:實例對象的權限最大。)
實例方法
定義:第一個參數必須是實例對象,該參數名一般約定為“self”,通過它來傳遞實例的屬性和方法(也可以傳類的屬性和方法);
調用:只能由實例對象調用。
類方法
定義:使用裝飾器@classmethod。第一個參數必須是當前類對象,該參數名一般約定為“cls”,通過它來傳遞類的屬性和方法(不能傳實例的屬性和方法);
一般用於實現另外的構造方法
調用:實例對象和類對象都可以調用。
靜態方法
定義:使用裝飾器@staticmethod。參數隨意,沒有“self”和“cls”參數,但是方法體中不能使用類或實例的任何屬性和方法;
調用:實例對象和類對象都可以調用。
抽象方法
定義:使用裝飾器@abstractmethod,含abstractmethod方法的類不能實例化,繼承了含abstractmethod方法的子類必須復寫所有abstractmethod裝飾的方法,未被裝飾的可以不重寫