Нужна помощь в понимании функции

Danila

Новичок
Пользователь
Фев 12, 2024
1
0
1
Здравствуйте, я недавно начал изучать язык питон и застрял на вот этой функции, хотелось бы понять как она работает и почему она именно выводит такие значения а не другие
Python:
def apply_twice(func, arg):
    return func(func(arg))

def add_five(x):
    return x + 5
print(apply_twice(add_five, 10))
 

Dr. Mundo

Модератор
Команда форума
Модератор
Фев 13, 2024
5
1
3
Давайте разберёмся, как работает ваша функция apply_twice.

Функция apply_twice принимает два аргумента: func и arg. func - это функция, которая будет применена к аргументу arg дважды. В вашем случае, функция add_five передаётся как func, а 10 как arg.

  1. При первом вызове func(arg), функция add_five принимает число 10 и добавляет к нему 5. Результат этой операции будет 15.
  2. Затем, результат первого вызова (который равен 15) снова передаётся в функцию add_five как аргумент. То есть, к 15 снова добавляется 5, и итоговый результат становится 20.
  3. Функция apply_twice возвращает последний результат, то есть 20.
В итоге, apply_twice(add_five, 10) работает следующим образом:
  • Первый вызов add_five(10) возвращает 15.
  • Второй вызов add_five(15) возвращает 20.
Поэтому, когда вы печатаете результат работы apply_twice(add_five, 10), вы получаете 20. Это и есть ответ на ваш вопрос о том, почему функция выводит именно такое значение.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 589
459
83
это декоратор, можете почитать
 

Форум IT Специалистов