Funkcie prvej triedy v Pythone

Funkcie prvej triedy v Pythone

V Pythone sa s funkciami zaobchádza ako s prvotriednymi objektmi. To znamená, že ich možno použiť ako reťazce čísel alebo akúkoľvek inú premennú. Môžete:

  • Priraďte funkcie premenným.
  • Odovzdajte ich ako argumenty iným funkciám.
  • Vráťte ich z funkcií.
  • Uložte ich do dátových štruktúr, ako sú zoznamy alebo slovníky.

Táto schopnosť vám umožňuje písať opakovane použiteľný modulárny a výkonný kód.

Charakteristika prvotriednych funkcií

Funkcie v Pythone majú nasledujúce dôležité vlastnosti. Pozrime sa na ne jeden po druhom s príkladmi:

1. Priradenie funkcií k premenným

Môžeme priradiť funkciu premennej a použite premennú na volanie funkcie.

Príklad:

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'  ))   

Výstup
Hello Emma!  

Vysvetlenie:

  • Premennej f je priradená funkcia msg.
  • Teraz f možno použiť na zavolanie správy msg, čo ukazuje, že funkcie sa správajú ako premenné.

2. Odovzdávanie funkcií ako argumentov

Funkcie môžu byť prešlo ako argumenty na ďalšie funkcie umožňujúce funkcie vyššieho rádu .

Príklad:

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'  ))   

Výstup
Hello Alex!  

Vysvetlenie:

  • Funkcia fun1 berie ako vstup inú funkciu (fun2).
  • msg sa odovzdá fun1, ktorý ju potom zavolá 'Alex'.

3. Vrátenie funkcií z iných funkcií

Funkcia môže vrátiť inú funkciu umožňujúce vytváranie funkčných tovární.

Príklad:

Python
   def   fun1  (  msg  ):   def   fun2  ():   return   f  'Message:   {  msg  }  '   return   fun2   # Getting the inner function   func   =   fun1  (  'Hello World!'  )   print  (  func  ())   

Výstup
Message: Hello World!  

Vysvetlenie:

  • Funkcia fun1 definuje inú funkciu fun2 a vráti ju.
  • func ukladá vrátenú funkciu fun2, ktorá môže byť vykonaná neskôr.

Funkcie môžu byť uložené v dátových štruktúrach ako napr zoznamy alebo slovníkov .

Príklad:

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  ))   

Výstup
8 2  

Vysvetlenie:

  • Funkcie sčítania a odčítania sú uložené v slovníku.
  • Sú prístupné pomocou ich kľúčov a spúšťajú sa priamo.
Navrhovaný kvíz Upraviť kvíz 8 otázok

Ktorá z nasledujúcich možností najlepšie popisuje prvotriednu funkciu v programovacích jazykoch?

  • A

    Funkcia, ktorú možno volať len v rámci jej vlastného rozsahu.

  • B

    Funkcia, ktorá môže byť priradená k premenným odovzdaným ako argumenty a vrátené z iných funkcií ako akýkoľvek iný objekt.

  • C

    Funkcia, ktorú možno definovať iba na najvyššej úrovni modulu.

  • D

    Funkcia, ktorú možno vykonať iba v špecifickom kontexte.

Vysvetlenie:


Čo je to funkcia vyššieho rádu v kontexte prvotriednych funkcií?

  • A

    Funkcia, ktorá môže vrátiť iba primitívne dátové typy.

  • B

    Funkcia, ktorá môže brať iné funkcie ako argumenty alebo ich vrátiť ako výsledky.

  • C

    Funkcia, ktorá je definovaná v rámci inej funkcie, ale nemôže byť vrátená.

  • D

    Funkcia, ktorá sa vykonáva v samostatnom vlákne.

Vysvetlenie:


Aký bude výstup nasledujúceho kódu?

def pozdrav(meno):

return f'Ahoj {name}'


say_hello = pozdraviť

print(say_hello('Geek'))

  • A

    Ahoj pozdravujem

  • B

    pozdraviť

  • C

    Ahoj Geek

  • D

    TypeError

Vysvetlenie:

Premenným je možné priradiť funkcie. Tu sa say_hello stáva ďalším odkazom na pozdrav.

Ktorá z nasledujúcich vlastností nie je vlastnosťou prvotriednych funkcií?

  • A

    Funkcie môžu byť uložené v dátových štruktúrach

  • B

    Premenným je možné priradiť funkcie

  • C

    Funkcie môžu vrátiť iné funkcie

  • D

    Funkcie môžu vrátiť iba primitívne typy

Vysvetlenie:

Prvotriedne funkcie môžu vrátiť akýkoľvek typ vrátane iných funkcií – nie sú obmedzené na primitíva.

Aký bude výstup tohto kódu?

def vonkajšie():

def inner():

vrátiť 'Vnútorná funkcia'

vrátiť vnútorné

func = vonkajšie()

print(func())

  • A

    Vnútorná funkcia

  • B

    vnútorné

  • C

    vonkajší

  • D

    Chyba

Vysvetlenie:

external() vracia vnútornú funkciu a func() ju volá a vracia jej reťazec.

Ktorá z nasledujúcich NIE JE charakteristikou prvotriednych funkcií?

  • A

    Môžu byť priradené k premenným.

  • B

    Môžu byť odovzdané ako argumenty iným funkciám.

  • C

    Môžu byť definované iba raz v programe.

  • D

    Môžu byť vrátené z iných funkcií.

Vysvetlenie:


Aký je výstup nasledujúceho kódu?

def make_multiplier(n):

def multiplikátor (x):

návrat x * n

návratový multiplikátor

double = make_multiplier(2)

vytlačiť(dvojité(5))

  • A

    7

  • B

    10

  • C

    25

  • D

    Chyba

Vysvetlenie:

make_multiplier(2) vráti funkciu, ktorá vynásobí svoj argument číslom 2. Takže double(5) vráti 10.



Ako Python zaobchádza s funkciami vzhľadom na premenné?

  • A

    Funkcie sú statické objekty

  • B

    Funkcie sú konštanty a nemožno ich priradiť

  • C

    Funkcie sú prvotriednymi občanmi a môžu byť uložené, odovzdané a znovu pridelené

  • D

    Aby sa funkcie mohli používať, musia byť deklarované ako globálne

Vysvetlenie:

Byť prvotriednymi občanmi znamená, že funkcie môžu byť priradené, odovzdané a vrátené ako iné predmety.

Funkcie prvej triedy v PythoneKvíz úspešne dokončený Vaše skóre:   2 /8 Presnosť:  0% Prihláste sa na zobrazenie vysvetlenia 1 /8 1 /8 < Previous Ďalej >