@Ivanzolo2001

Вопрос python программистам?

У меня есть функция, там нет ничего блокирующего, а в конце функций вызов этой же функций снова. После того как она вызовет сама себя и начнет работать уже вторая функция, завершится ли первая?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 3
@twistfire92
Python backend developer
это называется рекурсия. Почитайте.
Если смотрели фильм "Начало", то это как сон внутри сна из этого фильма. Первый вызов функции - первый уровень сна, второй вызов - второй уровень и так далее. И как в этом же фильме происходит "выброс", так же и происходит выход из всего стека функций. Ну конкретно если брать ваш пример.

И вопрос вообще к питону не относится. То же самое справедливо для любых других языков.
Ответ написан
Комментировать
@deliro
Нет
Ответ написан
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
Кейс, где рекурсивный вызов - самое последнее действие функции, это "хвостовая рекурсия". В некоторых языках и средах выполнения имеет место "оптимизация хвостовой рекурсии", то есть компилятор переписывает это дело так, что текущий вызов завершается перед следующим, и таким образом не будет переполнения стека, какой бы глубокой рекурсия ни была.
В языках программирования, куда не завезли цикл, это имеет смысл. В нормальных ЯП такая фича бесполезна, потому что легко переделать на цикл вручную. Есть ли оно в Питоне, непонятно, беглый поиск ответа не дал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы