У меня есть функции в python, которые принимают два входа, выполняют некоторые манипуляции и возвращают два вывода.Я хотел бы переставить выходные аргументы, поэтому я написал функцию-обертку вокруг исходной функции, которая создает новую функцию с новым порядком вывода
def rotate(f):
h = lambda x,y: -f(x,y)[1], f(x,y)[0]
return h
f = lambda x, y: (-y, x)
h = rotate(f)
Однако это выдает сообщение об ошибке:
NameError: global name 'x' is not defined
x
является аргументом лямбда-выражения, так почему оно должно быть определено?
Ожидаемое поведение таково, что h
должна быть новой функцией, идентичной lambda x,y: (-x,-y)