7.1 Tworzenie funkcji
Tworzenie funkcji w Pythonie jest fundamentalnym aspektem programowania, który pozwala kodowi być bardziej modułowym, wielokrotnego użytku i czytelnym. Funkcje w Pythonie są definiowane za pomocą słowa kluczowego def
, po którym następuje nazwa funkcji i nawiasy z parametrami.
Zawsze możesz myśleć o funkcji jako o zbiorze komend, które połączono w grupę i nadano tej grupie nazwę. Ogólny wygląd deklaracji funkcji wygląda tak:
def nazwa(parametry):
komenda1
komenda2
komendaN
Najprostsza funkcja w Pythonie może wyglądać tak:
def greet():
print("Hello, World!")
Wywołanie funkcji następuje poprzez napisanie jej nazwy z nawiasami:
greet() # Wyświetli: Hello, World!
Wywołanie funkcji jest równoważne z napisaniem jej wewnętrznego kodu w miejscu wywołania. Zamiast pisać ten sam kod wciąż na nowo, można go przenieść do oddzielnych bloków i nadać im nazwę.
7.2 Przekazywanie argumentów do funkcji
Praca z funkcjami nie byłaby tak ciekawa, gdyby zawsze robiły to samo — po prostu nazwany blok komend i tyle. Zamiast tego funkcje od razu wymyślono z parametrami — zmiennymi, przez które do funkcji można przekazywać różne wartości.
Zmienne wewnątrz funkcji nazywane są parametrami funkcji. A wartości, które są do nich przekazywane przy konkretnym wywołaniu, to argumenty funkcji. Parametry funkcji po prostu przyjmują wartości argumentów.
def greet(name):
print("Hello,", name)
greet("Alice") # Wyświetli: Hello, Alice!
Przykład funkcji z dwoma argumentami:
def print_sum(a, b):
print(f"Suma {a} i {b} wynosi {a + b}")
print_sum(10, 15) # Wyświetli: Suma 10 i 15 wynosi 25
No i oczywiście jako argumenty można przekazywać całe wyrażenia:
def print_sum(a, b):
print(f"Suma {a} i {b} wynosi {a + b}")
print_sum(10*10-123, 15//2) # Wyświetli: Suma -23 i 7 wynosi -16
Przydatne! Dla miłośników C/C++ — wszystkie zmienne w Pythonie — to referencje z punktu widzenia C++. Parametry funkcji także. Przy przypisaniu wartość nigdy nie jest kopiowana czy dublowana — zawsze przypisywana jest tylko referencja.
7.3 Funkcja — to obiekt
W Pythonie funkcje są obiektami pierwszej klasy, co oznacza, że mogą być używane jak każde inne obiekty. To daje programistom potężne narzędzie do tworzenia elastycznych rozwiązań programowych.
Funkcje jako obiekty
Jako obiekty pierwszej klasy, funkcje w Pythonie mogą być:
- Przypisane zmiennej
- Przekazane jako argumenty do innych funkcji
- Zwracane z innych funkcji
- Umieszczane w strukturach danych, takich jak listy, słowniki
Przykłady:
def shout(text):
return text.upper()
yell = shout
def greet(func):
greeting = func("Hello") # wywołujemy funkcję
print(greeting)
greet(shout)
W przyszłości jeszcze nie raz dotkniemy tego tematu, a na razie zapamiętajcie — wszystko w Pythonie jest obiektem. Funkcje, klasy, błędy, listy, moduły — wszystko.
GO TO FULL VERSION