Funkcje pierwszej klasy w Pythonie

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.
Sugerowany quiz Edytuj quiz 8 pytań

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.

Wyjaśnienie:


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.

Wyjaśnienie:


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

Wyjaśnienie:

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

Wyjaśnienie:

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

Wyjaśnienie:

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.

Wyjaśnienie:


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

Wyjaśnienie:

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

Wyjaśnienie:

Bycie obywatelem pierwszej klasy oznacza, że ​​funkcje można przypisywać i zwracać, tak jak inne obiekty.

Funkcje pierwszej klasy w PythonieQuiz ukończony pomyślnie Twój wynik:   2 /8 Dokładność :  0% Zaloguj się, aby zobaczyć wyjaśnienie 1 /8 1 /8 < Previous Dalej >