self,cls和 staticmethod的區別

2021-09-22 01:31:16 字數 684 閱讀 6788

self => instancemethod

1、instance method 就是例項物件與函式的結合。

2、使用類呼叫,第乙個引數明確的傳遞過去乙個例項。

3、使用例項呼叫,呼叫的例項被作為第乙個引數被隱含的傳遞過去。

簡單來說,就是帶了self這個引數的函式,如果想要呼叫的話必須先建立乙個類的例項,因為呼叫的時候會隱含地傳入呼叫的例項作為第乙個引數。

cls=> classmethod

1、classmethod 是類物件與函式的結合。

2、可以使用和類的例項呼叫,但是都是將類作為隱含引數傳遞過去。

3、使用類來呼叫 classmethod 可以避免將類例項化的開銷。

簡單來說,就是想要呼叫這個函式,必須先有這個類。呼叫這個函式的時候會隱含的傳入類作為第乙個引數傳遞過去。

@staticmethod

1、當乙個函式邏輯上屬於乙個類又不依賴與類的屬性的時候,可以使用staticmethod。

2、使用 staticmethod 可以避免每次使用的時都會建立乙個物件的開銷。

3、staticmethod 可以使用類和類的例項呼叫。但是不依賴於類和類的例項的狀態。

簡單來說,如果想要在類中寫乙個函式,但是這個函式和這個類不存在依賴關係。(比如說獲取時間的函式)這時候就可以使用staticmethod,這樣可以避免呼叫時建立乙個物件的開銷。

從self cls看Python的例項化 md

剛開始學習python的時候經常會有乙個疑問,為什麼每個類方法的第乙個參與一定要加乙個self?經過一定的編碼後發現,怎麼還有一些類方法裡面寫的是cls?在使用類方法的時候,我們通常會把乙個類做例項化之後再進行呼叫,比如這樣 class calc object defadd self,x,y pri...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

rpx和樣式和class和flex

5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...