我一直在寻找一种动态添加静态方法到python类的方法。
我的尝试如下:
class C(object):
a = None
k = 2
C.a = lambda x: k*x
print C.a(2)
不幸的是,我收到一条错误消息,指出C
实例是a
的第一个参数。实际上,python认为a
是类C
的实例方法,而不是类方法。
这是什么原因?我怎样才能克服这个问题?
答案 0 :(得分:5)
使用staticmethod
:
>>> C.a = staticmethod(lambda x: k*x)
>>> print C.a(2)
4