Rozdział 13 · Automatyzacja z funkcjami

Prawdziwa automatyzacja

Funkcje wykorzystują zestaw działań tyle razy, ile to konieczne, bez kopiowania kodu.

Prawdziwa automatyzacja

Pętle w rozdziale 10 automatyzowały powtarzanie tego samego kodu. Ale co jeśli jeden i To samo zestaw działań jest potrzebny w różnych miejscach programu — nie po kolei, lecz od czasu do czasu czasu? Kopiowanie kodu za każdym razem to zły pomysł: każda poprawka będzie musiała zostać wprowadzona we wszystkich kopiach. Cechy rozwiązać ten problem raz na zawsze.

Nasz pierwszy pełnometrażowy film

pervaya_funkciya.py
def privetstvie():
    print(„Cześć, Python!”)

privetstvie()
privetstvie()
privetstvie()

Anatomia def

CzęśćZnaczenie
defsłowo kluczowe: „dalej następuje definicja funkcji”
privetstvienazwa funkcji — po niej funkcja będzie wywoływana
()lista parametrów (tutaj pusto — funkcja nie przyjmuje danych)
:początek ciała funkcji
print(...)ciało — kod z wcięciem, który wykona się przy wywołaniu

def determinuje funkcję — zapisuje jej kod, ale jeszcze go nie wykonuje. Funkcja wykonuje się dopiero wtedy, gdy ją wywołujesz — z imienia i nazwiska w nawiasach: privetstvie().

Definicja nie jest wyzwaniem
Jeśli tylko piszesz def privetstvie(): ... nie dodawać privetstvie() poniżej, program nic nie wyświetla – Python tylko zapamięta funkcję, ale jej nie uruchomi.

Determinacja jest wykonywana raz, w szczególny sposób

Gdy Python osiąga granicę def privetstvie():, ciało Cechy niespełnione jak zwykłe sekwencyjne polecenia. Zamiast tego tworzony jest obiekt funkcji powiązany z nazwą privetstvie — i wykonanie programu kontynuuje BEZPOŚREDNIO PO definicji. Ciało uruchomi się dopiero później, gdy nastąpi wywołanie.

Funkcja jako obiekt

Znamy już model „imię wskazuje na obiekt”

privetstvieFUNKCJA OBIEKTOWA
Po def nazwa privetstvie wskazuje na obiekt funkcji
imya_bez_skobok.py
print(privetstvie)   # <function privetstvie at 0x...> — sam obiekt funkcji
privetstvie()          # Witaj Python! – a to jest WYZWANIE
privetstvie i privetstvie() to nie to samo
Bez nawiasów — odwołanie do samego obiektu funkcji (można go przekazać, zapisać, porównać). Z nawiasami — polecenie „wykonać ją teraz”. To rozróżnienie stanie się szczególnie ważne w §13.17, gdy funkcje zaczną być przekazywane jako zwykłe wartości.
Praktyka: Zdefiniuj i wywołaj pierwszą funkcję
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →