объясните пожалуйста по поподробнее
def myfunc(b):
return lambda a : a * b
e = myfunc(2) ?????????
g = myfunc(3)
print(e(20)) ???????????
print(g(25))
>>> 40, 75
Ответы
Ответ:
В данном случае, у вас есть функция myfunc(b), которая принимает аргумент b. Внутри функции определена анонимная функция (лямбда-функция) с параметром a, которая умножает a на значение b.
Функция myfunc(b) возвращает эту анонимную функцию.Когда вы вызываете myfunc(2), передавая аргумент 2, создается новая функция с фиксированным значением b = 2. Эта функция сохраняется в переменной e. Аналогично, вызов myfunc(3) создает новую функцию с b = 3, сохраненную в переменной g.
Когда вы вызываете e(20), то на самом деле вызывается внутренняя анонимная функция с a = 20 и b = 2. Таким образом, результатом будет 20 * 2 = 40.
Аналогично, вызов g(25) приводит к вызову анонимной функции с a = 25 и b = 3, что дает результат 25 * 3 = 75.
Таким образом, последовательность вызовов print(e(20)) и print(g(25)) выводит значения 40 и 75 соответственно.