Funkcje pierwszej klasy
Przekazuj i zwracaj funkcje
Funkcje pierwszej klasy to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Funkcje są obiektami
W Pythonie funkcje są obiektami pierwszej klasy. Można przypisywać je do zmiennych, przechowywać w strukturach danych, przekazywać jako argumenty i zwracać z innych funkcji — tak samo jak liczby czy napisy.
def greet():
return 'hi'
print(type(greet))
print(greet())Przypisywanie funkcji do zmiennych
Nazwa funkcji jest tylko odwołaniem. Można przypisać ją do innej nazwy i wywoływać funkcję za jej pośrednictwem — przy odwoływaniu się do samej funkcji nie należy używać nawiasów.
def shout(text):
return text.upper()
yell = shout
print(yell('hello'))Funkcje w strukturach danych
Funkcje można przechowywać na listach lub w słownikach, a następnie wyszukiwać je i wywoływać dynamicznie.
def add(a, b):
return a + b
def sub(a, b):
return a - b
ops = {'+': add, '-': sub}
print(ops['+'](10, 4))
print(ops['-'](10, 4))Przekazywanie funkcji jako argumentów
Funkcja, która przyjmuje inną funkcję jako parametr, jest nazywana funkcją wyższego rzędu. Przekazana funkcja jest argumentem.
def apply(func, value):
return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))map używa funkcji pierwszej klasy
Wbudowane funkcje, takie jak map, opierają się na przekazywaniu funkcji. W tym przykładzie funkcja jest stosowana do każdego elementu.
def square(n):
return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)filter przyjmuje predykat
filter zachowuje elementy, dla których przekazana funkcja zwraca wartość True. To funkcja decyduje, które elementy pozostają.
def is_even(n):
return n % 2 == 0
print(list(filter(is_even, range(10))))Zwracanie funkcji
Funkcja może zwracać inną funkcję. Zwróconą funkcję można następnie wywołać osobno.
def get_greeter():
def greeter(name):
return 'Hello ' + name
return greeter
f = get_greeter()
print(f('Ada'))Funkcje jako klucze sortowania
sorted przyjmuje funkcję key, która przypisuje każdemu elementowi wartość używaną do ustalenia kolejności.
words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)Lambda jako szybka funkcja
lambda to mała funkcja anonimowa. Doskonale nadaje się do jednorazowego użycia jako argument.
nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))Funkcje mają atrybuty
Ponieważ funkcje są obiektami, mają atrybuty, takie jak __name__, oraz docstring dostępny w __doc__.
def hello():
'Says hello.'
return 'hi'
print(hello.__name__)
print(hello.__doc__)Tworzenie tablicy dispatch
Łącząc te koncepcje, można utworzyć przejrzystą tablicę dispatch, która wybiera funkcję na podstawie nazwy — bez długich łańcuchów if/elif.
def start():
return 'starting'
def stop():
return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())Szybki test
Co oznacza to, że funkcje w Pythonie są „pierwszej klasy”?
Podsumowanie: funkcje pierwszej klasy
W Pythonie funkcje:
- są obiektami, które można przypisywać, przechowywać, przekazywać i zwracać;
- funkcje wyższego rzędu przyjmują lub zwracają inne funkcje (
map,filter, kluczsorted); lambdatworzy szybkie funkcje anonimowe;- umożliwiają tworzenie przejrzystych tablic dispatch zamiast długich instrukcji warunkowych.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))Często zadawane pytania
Czy lekcja „Funkcje pierwszej klasy” jest bezpłatna?
Tak — pełny tekst „Funkcje pierwszej klasy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Funkcje pierwszej klasy”?
Przekazuj i zwracaj funkcje Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Funkcje pierwszej klasy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Funkcje pierwszej klasy
- Domknięcia i zmienne wolne
- nonlocal i stan zmienny
- Funkcje częściowe