Funkce první třídy v Pythonu

Funkce první třídy v Pythonu

V Pythonu se s funkcemi zachází jako s prvotřídními objekty. To znamená, že je lze použít stejně jako řetězce čísel nebo jakoukoli jinou proměnnou. Můžete:

  • Přiřaďte funkce proměnným.
  • Předejte je jako argumenty jiným funkcím.
  • Vraťte je z funkcí.
  • Uložte je do datových struktur, jako jsou seznamy nebo slovníky.

Tato schopnost vám umožňuje psát opakovaně použitelný modulární a výkonný kód.

Charakteristika prvotřídních funkcí

Funkce v Pythonu mají následující důležité vlastnosti. Podívejme se na ně jeden po druhém s příklady:

1. Přiřazení funkcí proměnným

Můžeme přiřadit funkci k proměnné a použijte proměnnou k volání funkce.

Pří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!  

Vysvětlení:

  • Proměnné f je přiřazena funkce msg.
  • Nyní lze f použít k volání msg, které ukazuje, že funkce se chovají jako proměnné.

2. Předávání funkcí jako argumentů

Funkce mohou být prošel jako argumenty na další funkce umožňující funkce vyššího řádu .

Pří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!  

Vysvětlení:

  • Funkce fun1 má jako vstup jinou funkci (fun2).
  • msg je předán fun1, který jej pak zavolá 'Alex'.

3. Vrácení funkcí z jiných funkcí

Funkce může vrátit jinou funkci umožňující vytvoření funkčních továren.

Pří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!  

Vysvětlení:

  • Funkce fun1 definuje jinou funkci fun2 a vrací ji.
  • func ukládá vrácenou funkci fun2, kterou lze provést později.

Funkce mohou být uloženy v datových strukturách jako seznamy nebo slovníky .

Pří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  

Vysvětlení:

  • Funkce sčítání a odečítání jsou uloženy ve slovníku.
  • Jsou přístupné pomocí jejich klíčů a spouštějí se přímo.
Doporučený kvíz Upravit kvíz 8 Otázky

Která z následujících možností nejlépe popisuje prvotřídní funkci v programovacích jazycích?

  • A

    Funkce, kterou lze volat pouze z jejího vlastního rozsahu.

  • B

    Funkce, kterou lze přiřadit proměnným předávaným jako argumenty a vracené z jiných funkcí jako jakýkoli jiný objekt.

  • C

    Funkce, kterou lze definovat pouze na nejvyšší úrovni modulu.

  • D

    Funkce, kterou lze provést pouze v určitém kontextu.

Vysvětlení:


Co je v kontextu prvotřídních funkcí funkce vyššího řádu?

  • A

    Funkce, která může vracet pouze primitivní datové typy.

  • B

    Funkce, která může brát jiné funkce jako argumenty nebo je vracet jako výsledky.

  • C

    Funkce, která je definována v rámci jiné funkce, ale nelze ji vrátit.

  • D

    Funkce, která se provádí v samostatném vláknu.

Vysvětlení:


Jaký bude výstup následujícího kódu?

def pozdrav (jméno):

return f'Ahoj {name}'


say_hello = pozdravit

print(say_hello('Geek'))

  • A

    Ahoj zdravím

  • B

    pozdravit

  • C

    Ahoj Geeku

  • D

    TypeError

Vysvětlení:

Proměnným lze přiřadit funkce. Zde se say_hello stává dalším odkazem na pozdrav.

Která z následujících vlastností není vlastností prvotřídních funkcí?

  • A

    Funkce mohou být uloženy v datových strukturách

  • B

    Proměnným lze přiřadit funkce

  • C

    Funkce mohou vracet jiné funkce

  • D

    Funkce mohou vracet pouze primitivní typy

Vysvětlení:

Prvotřídní funkce mohou vracet jakýkoli typ včetně dalších funkcí – neomezených na primitiva.

Jaký bude výstup tohoto kódu?

def vnější():

def inner():

vrátit 'Vnitřní funkce'

vrátit vnitřní

func = vnější()

print(func())

  • A

    Vnitřní funkce

  • B

    vnitřní

  • C

    vnější

  • D

    Chyba

Vysvětlení:

external() vrací vnitřní funkci a func() ji volá a vrací její řetězec.

Která z následujících NENÍ charakteristikou prvotřídních funkcí?

  • A

    Lze je přiřadit k proměnným.

  • B

    Mohou být předány jako argumenty jiným funkcím.

  • C

    V programu je lze definovat pouze jednou.

  • D

    Lze je vrátit z jiných funkcí.

Vysvětlení:


Jaký je výstup následujícího kódu?

def make_multiplier(n):

def multiplikátor (x):

návrat x * n

návratový násobitel

double = make_multiplier(2)

tisknout(dvojitá(5))

  • A

    7

  • B

    10

  • C

    25

  • D

    Chyba

Vysvětlení:

make_multiplier(2) vrátí funkci, která vynásobí svůj argument 2. Takže double(5) vrátí 10.



Jak Python zachází s funkcemi s ohledem na proměnné?

  • A

    Funkce jsou statické objekty

  • B

    Funkce jsou konstanty a nelze je znovu přiřadit

  • C

    Funkce jsou prvotřídní občané a mohou být uloženy, předány a znovu přiděleny

  • D

    Aby se funkce mohly používat, musí být deklarovány jako globální

Vysvětlení:

Být prvotřídními občany znamená, že funkce lze přiřazovat, předávat a vracet jako jiné objekty.

Funkce první třídy v PythonuKvíz úspěšně dokončen Vaše skóre:   2 /8 Přesnost:  0 % Pro zobrazení vysvětlení se přihlaste 1 /8 1 /8 < Previous Další >