Помогите понять как работает данный код.
Написал в комментариях как я понимаю этот код, но не понимаю, почему функция работает передав только аргумент
N, а функция action возвращает возведение в степень без явного указанного аргумента
X.
Откуда она его берет?def maker(N):
def action(X):
return X ** N
return action
a = maker(2) # 1-й вызов, присваивание объекта функции maker переменной a, передача аргументу N значение "2"
print(a)
>>> <function maker.<locals>.action at 0x0000018DFFA2BA60>
print(a(3)) # 2-й вызов, аргумент N равен 3, т.е. функция action возвращает 3 ** 2. Почему тройка идет как X?
>>> 9
print(a(4))
>>> 16 # и т.д.