2015-09-14 37 views
0

我知道在沒有classmethod director的情況下可以選擇調用這些函數嗎?但除了用類參數調用它之外,還有什麼好處呢?我們在哪裏使用python類方法裝飾器?

+0

其他OO語言具有這種構造,例如,在Java和C++中,這些被稱爲靜態方法。它提供了一種將相關代碼組織到不需要實例的類的方法。你可以在課堂外實施,但可能缺乏你想要的凝聚力。什麼的優點,一個正常的功能或實例方法? – AChampion

+0

我同意關於靜態方法和使用類名稱調用類函數的差異。但是何時和爲什麼我們需要它?我正在尋找一個真正的案例方案,特別是類方法。 – jsk

+1

請參見[此問題]的接受的答案(http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner) – FallenAngel

回答

0

使用classmethod裝飾器它的行爲就像一個替代構造函數。

雖然它仍然需要使用您需要的參數,您可以在其中執行其他操作。爲了簡單起見。這就像你的班級的另一個__init__方法。

+0

沒有要求classmethod返回類的實例。 –

+0

雖然true,但您不需要實例化類以使用類方法。概念。這是一個替代構造函數。我使用'__init__'的參數意味着如果你的類有一個'__init__'並且需要3個參數,當你返回'@ classmethod'中的'class'的時候,你還需要相同數量的參數。因此是最基本意義上的替代構造函數 – Zion