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.
Š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.
Š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.
Š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
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
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
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.
Š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
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
Biti građani prve klase znači da se funkcije mogu dodijeliti i vratiti kao i drugi objekti.
Kviz uspješno završen Vaš rezultat: 2 /8 Točnost: 0% Prijavite se za pregled objašnjenja 1 /8 1 /8 < Previous Dalje >