> foo is a function > foo is a callable object > foo has method __call__ defined true true false even if you "setattr(foo, '__call__', another_function)" foo.__call__ won't be called >>> def foo(): print 'foo' >>> def loo(): print 'loo' >>> foo.__call__ = loo >>> foo() foo -- bromden[at]gazeta.pl