@linawhite

Объясните как работает этот код, я не понимаю эти манипуляции со скобочками?

def f():
    def a():
        def b():
            print("nested function")
        return b
    return a

f()()()

613a204a337b8658676486.png
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Как комментарий ко всем ответам:
Надо различать объект функции и вызов результата вычисления функции.
Объект - это f
Вызов результата - это f()
На этом и основан фокус.
f() превращается в a
a() превращается в b
b() превращается в print("nested function")
Оно печатает строку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Sergomen
@Sergomen
Просто делай добро и оно вернётся
613a23769c3ee335016512.png
Хз как это называется но тут каждая скобка отвечает за каждую внутренную функцию в том порядке в каком они объявлены.
Ответ написан
Комментировать
Recosh
@Recosh
Программист студент
В коде описание функции в функции... Это как пемененая в переменной, только эта функция. В итоге возвращение функций без их выполенния.
А потом скообочками вызывают их выполнение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы