Rozdział 13 · Automatyzacja z funkcjami

Funkcje jak taśma produkcyjna

Kilka małych funkcji, każda z wyraźnym wejściem i wyjściem, może wykonać duże zadanie razem—tak dobre jak jeden długi skrypt, ale znacznie wyraźniej.

Wynikiem jednej funkcji jest dane wejściowe dla następnej

konvejer.py
clean = normalize_text(input_text)
words = split_words(clean)
counts = count_words(words)
SUROWY TEKSTnormalize_textCZYSTY TEKSTsplit_wordsSŁOWAcount_wordsCZĘSTOTLIWOŚCI
Każda funkcja jest jednym etapem zrozumiałym; wynik jednego staje się wejściem następnego
To technika architektoniczna, a nie tylko wygoda
Podział na takie etapy — potężny sposób na organizację programu: każda funkcja rozwiązuje jedno zrozumiałe zadanie, każda ma jasny wejście i wyjście, a etapy można testować oddzielnie (§13.24).

Graf wywołań (call graph)

Kiedy funkcje wywołują inne funkcje, powstałą strukturę można przedstawić jako drzewo — wykres wywołań:

MAIN
normalize_text
analyze_text
count_words
count_unique
show_report
Graf wywołań — która funkcja wywołuje kogo; pokazuje strukturę całego programu

Do tego pomysłu wrócimy w §13.22, gdy przerobimy rzeczywiste wersje rozdziału 12 w podobna struktura.

Praktyka: rurociąg funkcji
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →