如何在静态变量中存储方法?

时间:2012-01-14 23:16:09

标签: python

我一直在寻找一种动态添加静态方法到python类的方法。

我的尝试如下:

class C(object):
    a = None

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

不幸的是,我收到一条错误消息,指出C实例是a的第一个参数。实际上,python认为a是类C的实例方法,而不是类方法。

这是什么原因?我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:5)

使用staticmethod

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