Задать вопрос
@Ivanzolo2001

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

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

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

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

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