Consider the following: def a(x): return x+1 def b(f): def g(*args,**kwargs): for arg in args: print arg return f(*args,**kwargs) return g
a.__call__ = b(a.__call__) now calling a(1) and a.__call__(1) yield 2 different results!! i.e. for functions a(1) doesnt seem to be translated to a.__call__ if you assign a new value to a.__call__? i am using python 2.3.3 somebody please clear this confusion -- http://mail.python.org/mailman/listinfo/python-list