netimen wrote:
Can I substitute a method of a class by a callable object (not a function)? I can very easy insert my function in a class as a method, but an object - can't.
Yes you can and did.
class Foo(object): pass class Obj(object): def __call__(self, obj_self): print 'Obj' def func(self): print 'func' f = Foo() Foo.meth = func f.meth() # all goes OK Foo.meth = Obj() f.meth() # I get TypeError: __call__() takes exactly 2 arguments (1 given)
So either remove the unused obj_self parameter from __call__ or pass something -- anything -- to be bound to it.
f.meth(1) for instance, works fime (in 3.0 at least) -- http://mail.python.org/mailman/listinfo/python-list