Каррирующий декоратор в PythonPython

Программы на Python
Гость
Каррирующий декоратор в Python

Сообщение Гость »


Я пытаюсь написать каррирующий декоратор на Python. Я дошёл до этого:

def curry(весело): кэш = [] numargs = fun.func_code.co_argcount def new_fun(*args, **kwargs): печать(аргументы) печать(кварги) кэш.расширить(список(аргументы)) if len(cache) >= numargs: # проще сделать это явно, чем с исключениями температура = [] для _ в xrange(numargs): temp.append(cache.pop()) веселье(*температура) вернуть новое_развлечение @карри защита myfun(a,b): распечатать(а,б) В следующем случае это работает нормально:

myfun(5) мое веселье(5) В следующем случае это не удается:

myfun(6)(7) Как это сделать правильно?

Если вы просто хотите связать аргументы с функцией и вас не интересует конкретный дизайн или основные принципы информатики, см. Связывание аргументов Python.

Вернуться в «Python»