Глава 13 · Автоматизация с помощью функций

Функции как конвейер

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

Результат одной функции — вход для следующей

konvejer.py
clean = normalize_text(input_text)
words = split_words(clean)
counts = count_words(words)
СЫРОЙ ТЕКСТnormalize_textЧИСТЫЙ ТЕКСТsplit_wordsСЛОВАcount_wordsЧАСТОТЫ
Каждая функция — одна понятная стадия; результат одной становится входом следующей
Это архитектурный приём, а не просто удобство
Разбиение на такие стадии — мощный способ организовать программу: каждая функция решает одну понятную задачу, у каждой ясный вход и выход, и стадии можно тестировать по отдельности (§13.24).

Граф вызовов (call graph)

Когда функции вызывают другие функции, получившуюся структуру можно изобразить как дерево — граф вызовов:

MAIN
normalize_text
analyze_text
count_words
count_unique
show_report
Граф вызовов — какая функция кого вызывает; показывает структуру программы целиком

Мы вернёмся к этой идее в §13.22, когда будем рефакторить реальные проекты главы 12 в похожую структуру.

Практика: конвейер из функций
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →