Как правильно передать функцию как аргумент в класс, который запускается как функция? То есть, как я понял, если вызвать класс в качестве функции, то будет выполнятся метод call.
class FunCall:
def __init__(self,*args,**kwargs):
self.__dict__.update(kwargs)
def __call__(self,p):
def wrapped(*args, **kwards):
return p(*args, **kwards)
return wrapped
def f(x, y, z=10, t=11):
return x + y + z + t
obj=FunCall(x=1,y=2)
obj.z=2
print obj(f)
Предполагается, что выведется 16=1+2+2+11, тем не менее, выводится <function wrapped at 0x7f006261daa0>. Что посоветуете?