虽然将实例方法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
(没有取而代之)
答案 0 :(得分:9)
让A.b成为静态方法,你应该没问题:
A.b = staticmethod(B.b)