9

インスタンスメソッドをクラスにモンキーパッチするのはかなり簡単ですが、たとえば

class A(object):
    pass

def a(self):
    print "a"

A.a = a

これを別のクラスの@staticmethodアラで行う

class B(object):
    @staticmethod
    def b():
        print "static b"

A.b = B.b

結果A.b()として

TypeError: バインドされていないメソッドは、最初の引数としてインスタンスを指定b()して呼び出す必要があります (代わりに何も取得しません)A

4

1 に答える 1

10

Ab を静的メソッドにすれば、問題ないはずです。

A.b = staticmethod(B.b)

于 2013-09-09T15:01:21.333 に答える