Funkcije prve klase u Pythonu

Funkcije prve klase u Pythonu

U Pythonu se funkcije tretiraju kao objekti prve klase. To znači da se mogu koristiti kao nizovi brojeva ili bilo koje druge varijable. Možete:

  • Varijablama dodijeliti funkcije.
  • Proslijedite ih kao argumente drugim funkcijama.
  • Vratite ih s funkcija.
  • Pohranite ih u strukture podataka kao što su popisi ili rječnici.

Ova vam sposobnost omogućuje pisanje višekratnog modularnog i moćnog koda.

Karakteristike prvorazrednih funkcija

Funkcije u Pythonu imaju sljedeće važne karakteristike. Pogledajmo ih jednu po jednu s primjerima:

1. Dodjeljivanje funkcija varijablama

možemo dodijeliti funkciju varijabli i koristite varijablu za poziv funkcije.

Primjer:

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

Izlaz
Hello Emma!  

Obrazloženje:

  • Funkcija msg dodijeljena je varijabli f.
  • Sada se f može koristiti za pozivanje msg pokazujući da se funkcije ponašaju kao varijable.

2. Prijenos funkcija kao argumenata

Funkcije mogu biti prošli kao argumenti omogućavanje drugih funkcija funkcije višeg reda .

Primjer:

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

Izlaz
Hello Alex!  

Obrazloženje:

  • Funkcija fun1 uzima drugu funkciju (fun2) kao ulaz.
  • msg se prosljeđuje fun1 koji ga zatim poziva s 'Alex'.

3. Vraćanje funkcija iz drugih funkcija

Funkcija može vratiti drugu funkciju omogućujući stvaranje tvornica funkcija.

Primjer:

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

Izlaz
Message: Hello World!  

Obrazloženje:

  • Funkcija fun1 definira drugu funkciju fun2 i vraća je.
  • func pohranjuje vraćenu funkciju fun2 koja se kasnije može izvršiti.

Funkcije se mogu pohraniti u podatkovne strukture kao što su popisi ili rječnicima .

Primjer:

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

Izlaz
8 2  

Obrazloženje:

  • Funkcije zbrajanja i oduzimanja pohranjene su u rječniku.
  • Pristupa im se pomoću njihovih ključeva i izravno se izvršavaju.
Predloženi kviz Uredi kviz 8 pitanja

Što od sljedećeg najbolje opisuje prvorazrednu funkciju u programskim jezicima?

  • A

    Funkcija koja se može pozvati samo unutar vlastitog opsega.

  • B

    Funkcija koja se može dodijeliti varijablama koje se prosljeđuju kao argumenti i vraćaju iz drugih funkcija kao bilo koji drugi objekt.

  • C

    Funkcija koja se može definirati samo na najvišoj razini modula.

  • D

    Funkcija koja se može izvršiti samo u određenom kontekstu.

Obrazloženje:


Što je funkcija višeg reda u kontekstu prvorazrednih funkcija?

  • A

    Funkcija koja može vratiti samo primitivne tipove podataka.

  • B

    Funkcija koja može uzeti druge funkcije kao argumente ili ih vratiti kao rezultate.

  • C

    Funkcija koja je definirana unutar druge funkcije, ali se ne može vratiti.

  • D

    Funkcija koja se izvršava u zasebnoj niti.

Obrazloženje:


Što će biti izlaz sljedećeg koda?

def pozdrav(ime):

return f'Zdravo {name}'


reci_zdravo = pozdravi

print(say_hello('Greek'))

  • A

    Pozdrav pozdrav

  • B

    pozdraviti

  • C

    Pozdrav Geeku

  • D

    TypeError

Obrazloženje:

Funkcije se mogu dodijeliti varijablama. Ovdje say_hello postaje još jedna referenca za pozdrav.

Što od sljedećeg nije svojstvo prvorazrednih funkcija?

  • A

    Funkcije se mogu pohraniti u strukture podataka

  • B

    Funkcije se mogu dodijeliti varijablama

  • C

    Funkcije mogu vratiti druge funkcije

  • D

    Funkcije mogu vratiti samo primitivne tipove

Obrazloženje:

Prvorazredne funkcije mogu vratiti bilo koji tip uključujući druge funkcije—ne ograničavajući se na primitivne.

Što će biti rezultat ovog koda?

def vanjski():

def unutarnji():

vrati 'unutarnju funkciju'

povratak unutarnji

func = vanjski()

ispis(func())

  • A

    Unutarnja funkcija

  • B

    unutarnji

  • C

    vanjski

  • D

    Greška

Obrazloženje:

outer() vraća unutarnju funkciju, a func() je poziva vraćajući njezin niz.

Što od sljedećeg NIJE karakteristika prvorazrednih funkcija?

  • A

    Mogu se dodijeliti varijablama.

  • B

    Mogu se proslijediti kao argumenti drugim funkcijama.

  • C

    Mogu se definirati samo jednom u programu.

  • D

    Mogu se vratiti iz drugih funkcija.

Obrazloženje:


Što je rezultat sljedećeg koda?

def make_multiplikator(n):

def multiplikator(x):

povratak x * n

povratni množitelj

dvostruko = make_multiplikator(2)

ispis(double(5))

  • A

    7

  • B

    10

  • C

    25

  • D

    Greška

Obrazloženje:

make_multiplier(2) vraća funkciju koja svoj argument množi s 2. Dakle, double(5) vraća 10.



Kako Python tretira funkcije s obzirom na varijable?

  • A

    Funkcije su statični objekti

  • B

    Funkcije su konstante i ne mogu se ponovno dodjeljivati

  • C

    Funkcije su građani prve klase i mogu se pohraniti i preraspodijeliti

  • D

    Funkcije se moraju deklarirati kao globalne da bi se mogle koristiti

Obrazloženje:

Biti građani prve klase znači da se funkcije mogu dodijeliti i vratiti kao i drugi objekti.

Funkcije prve klase u PythonuKviz uspješno završen Vaš rezultat:   2 /8 Točnost:  0% Prijavite se za pregled objašnjenja 1 /8 1 /8 < Previous Dalje >