Funkcje pierwszej klasy w Pythonie
W Pythonie funkcje traktowane są jak obiekty pierwszej klasy. Oznacza to, że można ich używać tak samo jak ciągów liczbowych lub dowolnej innej zmiennej. Możesz:
- Przypisz funkcje do zmiennych.
- Przekaż je jako argumenty do innych funkcji.
- Zwróć je z funkcji.
- Przechowuj je w strukturach danych, takich jak listy lub słowniki.
Ta umiejętność pozwala na pisanie modułowego i wydajnego kodu wielokrotnego użytku.
Charakterystyka funkcji pierwszej klasy
Funkcje w Pythonie mają następujące ważne cechy. Zobaczmy je jeden po drugim z przykładami:
1. Przypisywanie funkcji zmiennym
Możemy przypisać funkcję do zmiennej i użyj zmiennej, aby wywołać funkcję.
Przykład:
Python def msg ( name ): return f 'Hello { name } !' # Assigning the function to a variable f = msg # Calling the function using the variable print ( f ( 'Emma' ))
Wyjście
Hello Emma!
Wyjaśnienie:
- Funkcja msg jest przypisana do zmiennej f.
- Teraz f można użyć do wywołania msg pokazującego, że funkcje zachowują się jak zmienne.
2. Przekazywanie funkcji jako argumentów
Funkcje mogą być przekazywane jako argumenty do innych funkcji umożliwiających funkcje wyższego rzędu .
Przykład:
Python def msg ( name ): return f 'Hello { name } !' def fun1 ( fun2 name ): return fun2 ( name ) # Passing the msg function as an argument print ( fun1 ( msg 'Alex' ))
Wyjście
Hello Alex!
Wyjaśnienie:
- Funkcja fun1 przyjmuje na wejściu inną funkcję (fun2).
- msg jest przekazywany do fun1, który następnie wywołuje go za pomocą „Alex”.
3. Zwracanie funkcji z innych funkcji
Funkcja może zwrócić inną funkcję pozwalające na tworzenie fabryk funkcyjnych.
Przykład:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Wyjście
Message: Hello World!
Wyjaśnienie:
- Funkcja fun1 definiuje inną funkcję fun2 i zwraca ją.
- func przechowuje zwróconą funkcję fun2, którą można wykonać później.
Funkcje można przechowywać w strukturach danych, np listy Lub słowniki .
Przykład:
Python def add ( x y ): return x + y def subtract ( x y ): return x - y # Storing functions in a dictionary d = { 'add' : add 'subtract' : subtract } # Calling functions from the dictionary print ( d [ 'add' ]( 5 3 )) print ( d [ 'subtract' ]( 5 3 ))
Wyjście
8 2
Wyjaśnienie:
- Funkcje dodawania i odejmowania są przechowywane w słowniku.
- Dostęp do nich uzyskuje się za pomocą kluczy i jest wykonywany bezpośrednio.
Które z poniższych najlepiej opisuje pierwszorzędną funkcję w językach programowania?
- A
Funkcja, którą można wywołać tylko z jej własnego zakresu.
- B
Funkcja, którą można przypisać do zmiennych przekazywanych jako argumenty i zwracanych przez inne funkcje, jak każdy inny obiekt.
- C
Funkcja, którą można zdefiniować tylko na najwyższym poziomie modułu.
- D
Funkcja, którą można wykonać tylko w określonym kontekście.
Czym jest funkcja wyższego rzędu w kontekście funkcji pierwszej klasy?
- A
Funkcja, która może zwracać tylko pierwotne typy danych.
- B
Funkcja, która może przyjmować inne funkcje jako argumenty lub zwracać je jako wyniki.
- C
Funkcja, która jest zdefiniowana w innej funkcji, ale nie może zostać zwrócona.
- D
Funkcja wykonywana w osobnym wątku.
Jaki będzie wynik poniższego kodu?
zdecydowanie pozdrawiam (imię):
return f'Witam {imię}'
say_hello = witaj
print(say_hello('Geek'))
- A
Witam serdecznie
- B
powitać
- C
Cześć Geeku
- D
TypBłąd
Zmiennym można przypisywać funkcje. Tutaj say_hello staje się kolejnym odniesieniem do powitania.
Która z poniższych właściwości nie jest własnością funkcji pierwszej klasy?
- A
Funkcje można przechowywać w strukturach danych
- B
Zmiennym można przypisywać funkcje
- C
Funkcje mogą zwracać inne funkcje
- D
Funkcje mogą zwracać tylko typy pierwotne
Funkcje pierwszej klasy mogą zwracać dowolny typ, w tym inne funkcje — nie ograniczając się do prymitywów.
Jaki będzie wynik tego kodu?
def zewnętrzne():
zdecydowanie wewnętrzna():
return „Funkcja wewnętrzna”
powrót do wnętrza
funkcja = zewnętrzna()
drukuj(funkcja())
- A
Funkcja wewnętrzna
- B
wewnętrzny
- C
zewnętrzny
- D
Błąd
external() zwraca funkcję wewnętrzną, a func() wywołuje ją, zwracając jej ciąg znaków.
Która z poniższych cech NIE jest cechą funkcji pierwszej klasy?
- A
Można je przypisać do zmiennych.
- B
Można je przekazywać jako argumenty do innych funkcji.
- C
Można je zdefiniować tylko raz w programie.
- D
Można je zwrócić z innych funkcji.
Jaki jest wynik poniższego kodu?
def make_multiplier(n):
def mnożnik(x):
zwróć x * n
mnożnik zwrotu
double = make_multiplier(2)
drukuj(podwójne(5))
- A
7
- B
10
- C
25
- D
Błąd
make_multiplier(2) zwraca funkcję, która mnoży swój argument przez 2. Zatem double(5) zwraca 10.
Jak Python traktuje funkcje w odniesieniu do zmiennych?
- A
Funkcje są obiektami statycznymi
- B
Funkcje są stałymi i nie można ich ponownie przypisać
- C
Funkcje są obywatelami pierwszej klasy i można je przechowywać i ponownie przypisywać
- D
Aby można było używać funkcji, należy je zadeklarować jako globalne
Bycie obywatelem pierwszej klasy oznacza, że funkcje można przypisywać i zwracać, tak jak inne obiekty.
Quiz ukończony pomyślnie Twój wynik: 2 /8 Dokładność : 0% Zaloguj się, aby zobaczyć wyjaśnienie 1 /8 1 /8 < Previous Dalej >