Rozdział 13 · Automatyzacja z funkcjami
Dlaczego potrzebuję funkcji?
Parameter to nazwa w definicji. Argument to wartość przekazywana podczas wywołania. Różnica między nimi jest fundamentem wszystkiego, co następuje dalej.
Dlaczego potrzebuję funkcji?
- Kod nie jest powtarzany — poprawka jest dokonywana w jednym miejscu.
- Łatwiejsze do czytania — nazwa funkcji wyjaśnia, co się dzieje, nie zmuszając do wgłębiania się w szczegóły implementacji.
- Łatwiej szukać błędów – jeśli coś jest zepsute w powitaniu, na pewno się to zrobi
Wiedz, gdzie szukać: Do środka
privetstvie().
Za każdym razem, gdy robimy coś nowego!
Funkcja bez wejścia zawsze robi to samo. Aby funkcja zachowywała się inaczej W zależności od sytuacji otrzymuje argumenty są wartościami w nawiasach w miejscu Rozmow:
argumenty.py
def privetstvie(imya):
print(f"Cześć, {imya}!")
privetstvie(„Ada”)
privetstvie("Cartesian")
Parametr vs argument — dokładna różnica
Te dwa słowa łatwo pomylić, ale mają różne role:
| Gdzie się pojawia | Co to jest | |
|---|---|---|
| Parametr | w definicji: def privetstvie(imya): | lokalna nazwa wewnątrz funkcji |
| Argumentacja | w rozmowie: privetstvie("Ада") | obiekt/wartość przekazana, gdy |
Parametry to nazwy lokalne
Kontynuujmy znany model „nazwij wskazuje na obiekt”
"Transfer by meaning" i "by reference" są mylące
Nie traktuj Python jako języka, w którym "wszystko przekazywane jest przez odniesienie" lub "wszystko przekazywane jest przez znaczenie" — oba sformułowania są tu zbyt nieprecyzyjne i zbędne. Dokładniej, w ten sposób: przy wywołaniu funkcji jej parametry są powiązane z tymi samymi obiektami, co przekazane argumenty to ten sam model „nazw → obiekt” call by sharing, ale specjalnego terminu nie trzeba zapamiętywać — ważny jest sam model.
Bez kłótni?
Funkcja bez parametrów w nawiasie – na przykład, privetstvie()
z §13.2 — też całkowicie normalne: nie każda funkcja potrzebuje danych wejściowych.
Praktyka: argument parametru vs
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji