• Предмет: Информатика
  • Автор: starmen2002
  • Вопрос задан 3 месяца назад

объясните пожалуйста по поподробнее

def myfunc(b):
return lambda a : a * b
e = myfunc(2) ?????????
g = myfunc(3)
print(e(20)) ???????????
print(g(25))
>>> 40, 75

Ответы

Ответ дал: nikitakulinic270
1

Ответ:

В данном случае, у вас есть функция 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 соответственно.

Вас заинтересует