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
def privetstvie():
print(„Cześć, Python!”)
privetstvie()
privetstvie()
privetstvie()
Anatomia def
| Część | Znaczenie |
|---|---|
def | słowo kluczowe: „dalej następuje definicja funkcji” |
privetstvie | nazwa 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().
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”
print(privetstvie) # <function privetstvie at 0x...> — sam obiekt funkcji
privetstvie() # Witaj Python! – a to jest WYZWANIE