當我做到以下幾點:動態添加成員函數的類的實例在Python
class C:
pass
def f(self):
print self
a = C()
a.f = f
a.f()
我得到在該行自動對焦()以下錯誤: 類型錯誤:F()恰恰1個參數(0給出)
問題似乎是,當f被添加到實例中時,它被看作是存儲在一個內部的函數,而不是實際的成員函數。如果我將a.f()更改爲a.f(a),那麼我會得到預期的效果,但是有沒有辦法讓python以這種方式解釋原始示例?換句話說,是否有一種方法可以在運行時將成員函數添加到類的實例中?
感謝
這是將函數添加到特定實例'a' (類'C'的其他實例不具有'f')的方式。 – Dave 2012-07-13 15:33:59
'Cf = types.MethodType(f,None,C)'是將函數添加到類的任何現有或最終新實例的代碼C – Julius 2014-03-31 01:24:10