2012-01-14 40 views
1

我正在尋找一種動態添加靜態方法到python類的方法。如何將方法存儲在靜態變量中?

我的嘗試是如下:

class C(object): 
    a = None 

k = 2 
C.a = lambda x: k*x 
print C.a(2) 

不幸的是,我得到一個錯誤,指出C實例需要作爲第一個參數a。實際上,python認爲a是類C的實例方法,而不是類方法。

這是什麼原因?我怎樣才能克服這個問題?

回答

5

使用staticmethod

>>> C.a = staticmethod(lambda x: k*x) 
>>> print C.a(2) 
4 
相關問題