1. 程式人生 > >Pycharm提示方法Method xxx may be 'static'

Pycharm提示方法Method xxx may be 'static'

使用Pycharm進行Python開發時,在類中定義方法時,若該方法不涉及對屬性的操作,那麼Pycharm會提示Method xxx may be 'static',因為Pycharm會認為該方法是一個靜態方法,而不是類方法,所提提示我們在該方法前新增@staticmethod裝飾器進行裝飾。

簡單記錄一下classmethod和staticmethod的區別:

classmethod是類方法,而staticmethod是靜態方法。

在python中,靜態方法和類方法都是可以通過類物件和類物件例項訪問。但是區別是:
@classmethod 是一個函式修飾符,它表示接下來的是一個類方法,類方法的第一個引數cls,而例項方法的第一個引數是self,表示該類的一個例項。

普通物件方法至少需要一個self引數,代表類物件例項
類方法有類變數cls傳入,從而可以用cls做一些相關的處理。並且有子類繼承時,呼叫該類方法時,傳入的類變數cls是子類,而非父類。 對於類方法,可以通過類來呼叫,比如說A是一個類,那麼我們可以通過A.method()來呼叫A裡面的method方法, 也可以通過類的一個例項來呼叫,如A().method()進行呼叫,首先A()方法會呼叫A的初始化方法進行例項化出一個A的物件,然後通過該物件呼叫method方法。
靜態方法則沒有上述方法,它基本上跟一個全域性函式相同,一般來說用的很少