Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Функции как значения (первого класса)

В Python функция — такое же значение, как число или строка: её можно положить в переменную и передать другой функции.

Функция без скобок — это значение

Имя функции без скобок — ссылка на саму функцию, а со скобками — её вызов. Ссылку можно сохранить в переменную и вызывать через неё.

def hello():
    print('привет')

f = hello    # без скобок — сохранили функцию
f()          # вызвали через переменную -> привет

Передать функцию в функцию

Раз функция — значение, её можно передать как аргумент. Так работают, например, sorted(key=...) и map: вы передаёте им функцию, а они её применяют. Это гибко и экономит код.

Зачем это нужно

Функции-значения позволяют выбирать поведение на ходу: передать разное правило сортировки, разный обработчик. Новичку не обязательно писать так сразу, но понимать полезно — вы встретите это в реальном коде и документации.

Частые вопросы

В чём разница f и f()? f — сама функция (значение), f() — её вызов (результат).

Это сложно для новичка? Идея простая; на практике вы встретите её в sorted(key=...) и подобном.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание