Rozdział 13 · Automatyzacja z funkcjami
Odpowiedz
return przekazuje wynik funkcji z powrotem tam, z którego została wywołana — a funkcja bez return nadal zwraca coś: None.
Jak dotąd nasze funkcje drukowały tylko tekst. Ale często nie trzeba drukować wyniku, aby
ekran, oraz powrót go wykorzystać dalej w programie.
Słowo kluczowe return robi dokładnie to:
return.py
def summa(a, b):
return a + b
result = summa(5, 7)
print(result) # 12
print(summa(2, 3) * 10) # wynik funkcji można użyć natychmiast – 50
print() wewnątrz funkcji — to nie to samo co return
Funkcja, która tylko drukuje wynik, nic nie zwroty — próba zapisania wyniku do zmiennej skutkuje
None:print_vs_return.py
def summa_pechataet(a, b):
print(a + b) # wyświetla się, ale nie wraca
x = summa_pechataet(5, 7) #12 pojawi się na ekranie
print(x) # Ale x jest None!
| print(...) wewnątrz funkcji | return ... wewnątrz funkcji | |
|---|---|---|
| Rezultat | tekst na ekranie | obiekt przechodzi w miejsce wywołania |
| x = f(...) | x stanie się None | x stanie się wartością obliczoną |
Ukryte None
Jeśli funkcja osiąga koniec ciała, nie wykonując jej nigdy return,
Python sam ją odwzajemnia None:
implicit_none.py
def hello():
print("Hello")
result = hello()
print(result)
Hello
None
None jest rzeczywistym obiektem, a nie „pustką”
None jest konkretnym dopełnieniem Python oznaczającym brak znaczenia w danym kontekście (Rozdział 9). Funkcja bez return nie „niczego nie zwraca” w sensie całkowitego braku wyniku — zwraca właściwie obiekt None.Nagi return
return bez wyrażenia po tym, jak również zwraca
None — i natychmiast kończy funkcję. Przydatne na początku
Efekt:
bare_return.py
def process(value):
if value is None:
return
print(value)
Wczesne return
early_return.py
def classify_age(age):
if age < 0:
return „Nieprawidłowy wiek”
if age < 18:
return „Minor”
return „Dla dorosłych”
return natychmiast kończy funkcję
Jak tylko zostanie wykonane
returnfunkcja kończy się natychmiast — kod po niej wewnątrz funkcji nie zostanie wykonany.Zwracaj wiele wartości
neskolko_znachenij.py
def min_max(numbers):
return min(numbers), max(numbers)
low, high = min_max([3, 7, 1, 9])
print(low, high) # 1 9
W rzeczywistości zwraca jedną krotkę
return a, b na poziomie Python tworzy i zwraca JEDEN obiekt — krotkę (a, b) (rozdział 11). Funkcja nie „zwraca dwóch obiektów jednocześnie” — zwraca jeden krotkę, którą następnie można rozpakować na dwie zmienne podczas wywołania, dokładnie jak każdą inną krotkę.Praktyka: return, implicit None, wczesne return
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji