能簡要的解釋下python的 Class method 使用場合?

時間 2021-06-04 08:29:46

1樓:

這裡有例子說的比較清楚:

python @classmethod 的使用場合摘取的部分內容:

class

Data_test2

(object

):day=0

month=0

year=0

def__init__

(self

,year=0

,month=0

,day=0

):self

.day

=day

self

.month

=month

self

.year

=year

@classmethod

defget_date

(cls

,data_as_string

):#這裡第乙個引數是cls, 表示呼叫當前的類名year

,month

,day

=map

(int

,string_date

.split

('-'

))date1

=cls

(year

,month

,day

)#返回的是乙個初始化後的類

return

date1

defout_date

(self

):print

"year :"

print

self

.year

print

"month :"

print

self

.month

print

"day :"

print

self

.day

在Date_test類裡面建立乙個成員函式, 前面用了@classmethod裝飾。 它的作用就是有點像靜態類,比靜態類不一樣的就是它可以傳進來乙個當前類作為第乙個引數。

那麼如何呼叫呢?

r=Data_test2.get_date("2016-8-6")r.out_date()

輸出:year :

2016

month :

8day :

1這樣子等於先呼叫get_date()對字串進行出來,然後才使用Data_test的建構函式初始化。

這樣的好處就是你以後重構類的時候不必要修改建構函式,只需要額外新增你要處理的函式,然後使用裝飾符 @classmethod 就可以了。

2樓:帝歸

例如你使用orm時,乙個User類對應資料庫中的user表。

你有乙個where方法,其作用相當於sql的select * from table where ...

此時,這個where方法就應該作為classmethod:

class User():

----@classmethod

----where(cls):

這樣,你就可以直接通過呼叫User.where()來取得資料庫中的所有使用者物件,而不需要新建乙個User類的物件之後再呼叫這個方法。

能否通俗的解釋Python的pickle模組是幹嘛用的?

python酷 Python物件在程式執行的時候是在記憶體中的,pickle模組可以將物件持久化到硬碟 通俗點就是儲存到檔案 物件裡邊儲存的資料就不會隨著Python物件生命週期的結束而丟失,使用的時候直接用pickle再從檔案載入回來就好了 Monk pickle模組實現了用於序列化和反序列化Py...

能簡要的概括一下你認為的網際網路思維嗎?

萌萌綠意 我認為哈,網際網路思維的核心在於 連線 表現為利用網際網路技術手段,實現資料的打通 資源的打通和人與人之間的打通。因為連線,效率變得更高,對使用者需求的理解變得更精準,資訊更加透明,能夠識別不同的場景,因此產品也更加友好 柔性,能夠快速迭代。在中國這個滲透率已經見頂的移動網際網路時代,這種...

Python中 init 的通俗解釋是什麼?

beatme 給例項賦值,初始化物件 就好像c裡面結構體的初始化,先malloc乙個結構體大小的記憶體 python裡是 new 然後給每個成員賦值。 小鮑 是否可以理解為函式引用,之前5 6年都在用Labview,跟這個開發環境很多的邏輯是互通的。匯入 init 方法後 其實也可以稱為函式 在整個...