2012-01-14 37 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 
相关问题