def myfunc(a,b=2):
print("Called with", a, b)
return
p1 = functools.partial(myfunc, b=4)
p1("foobar", 4)
Почему возникает синтаксическая ошибка при запуске этой последней строки? Он работает, если я делаю: myfunc("foobar", 4)
Почему это невозможно в Python?
Partial создает новую функцию, которая вызывает старую, с некоторыми предопределенными аргументами, поэтому для вызова частичной функции с тем же числом аргументов, что и исходная функция, не имеет смысла. Просто не пройдите 4, и он будет работать так, как вы планировали. –
Нет синтаксической ошибки, вы имели в виду 'TypeError'? – delnan