当我做到以下几点:动态添加成员函数的类的实例在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