如何monkeypatch静态方法?

时间:2013-09-09 14:54:55

标签: python static-methods monkeypatching

虽然将实例方法monkeypatch到类很简单,例如

class A(object):
    pass

def a(self):
    print "a"

A.a = a

使用另一个班级@staticmethodàla

执行此操作
class B(object):
    @staticmethod
    def b():
        print "static b"

A.b = B.b

导致A.b()产生

  

TypeError:必须使用b()实例作为第一个参数调用未绑定方法A(没有取而代之)

1 个答案:

答案 0 :(得分:9)

让A.b成为静态方法,你应该没问题:

A.b = staticmethod(B.b)