Funcții de primă clasă în Python
În Python, funcțiile sunt tratate ca obiecte de primă clasă. Aceasta înseamnă că pot fi folosite la fel ca șirurile de numere sau orice altă variabilă. Puteți:
- Atribuiți funcții variabilelor.
- Transmite-le ca argumente altor funcții.
- Returnați-le din funcții.
- Stocați-le în structuri de date, cum ar fi liste sau dicționare.
Această abilitate vă permite să scrieți cod modular și puternic reutilizabil.
Caracteristicile funcțiilor de primă clasă
Funcțiile din Python au următoarele caracteristici importante. Să le vedem unul câte unul cu exemple:
1. Atribuirea de funcții variabilelor
Putem atribuiți o funcție unei variabile și folosiți variabila pentru a apela funcția.
Exemplu:
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' ))
Ieșire
Hello Emma!
Explicaţie:
- Funcția msg este atribuită variabilei f.
- Acum f poate fi folosit pentru a apela msg arătând că funcțiile se comportă ca variabile.
2. Transmiterea funcțiilor ca argumente
Funcțiile pot fi trecute drept argumente la alte funcții de activare funcții de ordin superior .
Exemplu:
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' ))
Ieșire
Hello Alex!
Explicaţie:
- Funcția fun1 preia o altă funcție (fun2) ca intrare.
- msg este transmis la fun1 care apoi îl numește cu „Alex”.
3. Returnarea funcțiilor din alte funcții
O funcție poate returnează o altă funcție permiţând crearea de fabrici de funcţii.
Exemplu:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Ieșire
Message: Hello World!
Explicaţie:
- Funcția fun1 definește o altă funcție fun2 și o returnează.
- func stochează funcția returnată fun2 care poate fi executată ulterior.
Funcțiile pot fi stocate în structuri de date precum liste sau dicționare .
Exemplu:
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 ))
Ieșire
8 2
Explicaţie:
- Funcțiile de adunare și scădere sunt stocate într-un dicționar.
- Acestea sunt accesate folosind cheile lor și executate direct.
Care dintre următoarele descrie cel mai bine o funcție de primă clasă în limbaje de programare?
- O
O funcție care poate fi apelată doar din propriul domeniu de aplicare.
- B
O funcție care poate fi atribuită variabilelor transmise ca argumente și returnate de la alte funcții ca orice alt obiect.
- C
O funcție care poate fi definită doar la nivelul superior al unui modul.
- D
O funcție care poate fi executată doar într-un context specific.
În contextul funcțiilor de primă clasă, ce este o funcție de ordin superior?
- O
O funcție care poate returna doar tipuri de date primitive.
- B
O funcție care poate lua alte funcții ca argumente sau le poate returna ca rezultate.
- C
O funcție care este definită într-o altă funcție, dar care nu poate fi returnată.
- D
O funcție care se execută într-un fir separat.
Care va fi rezultatul următorului cod?
def salut(nume):
returnează „Bună ziua, {name}”
say_hello = salut
print(sy_hello('Geek'))
- O
salut salut
- B
salut
- C
Salut Geek
- D
TypeError
Funcțiile pot fi atribuite variabilelor. Aici say_hello devine o altă referință pentru salut.
Care dintre următoarele nu este o proprietate a funcțiilor de primă clasă?
- O
Funcțiile pot fi stocate în structuri de date
- B
Funcțiile pot fi atribuite variabilelor
- C
Funcțiile pot returna alte funcții
- D
Funcțiile pot returna doar tipuri primitive
Funcțiile de primă clasă pot returna orice tip, inclusiv alte funcții, fără a se limita la primitive.
Care va fi rezultatul acestui cod?
def outer():
def inner():
returnează „Funcția interioară”
întoarce-te în interior
func = exterior()
print(func())
- O
Funcția interioară
- B
interior
- C
exterior
- D
Eroare
outer() returnează funcția internă și func() o apelează returnând șirul său.
Care dintre următoarele NU este o caracteristică a funcțiilor de primă clasă?
- O
Ele pot fi atribuite variabilelor.
- B
Ele pot fi transmise ca argumente altor funcții.
- C
Ele pot fi definite o singură dată într-un program.
- D
Ele pot fi returnate din alte funcții.
Care este rezultatul următorului cod?
def make_multiplicator(n):
multiplicator def (x):
întoarce x * n
multiplicator de returnare
dublu = make_multiplicator(2)
imprimare(dublu(5))
- O
7
- B
10
- C
25
- D
Eroare
make_multiplier(2) returnează o funcție care își înmulțește argumentul cu 2. Deci, double(5) returnează 10.
Cum tratează Python funcțiile cu privire la variabile?
- O
Funcțiile sunt obiecte statice
- B
Funcțiile sunt constante și nu pot fi reatribuite
- C
Funcțiile sunt cetățeni de primă clasă și pot fi stocate, trecute și reatribuite
- D
Funcțiile trebuie să fie declarate globale pentru a fi utilizate
A fi cetățeni de primă clasă înseamnă că funcțiile pot fi atribuite trecute și returnate ca și alte obiecte.
Test completat cu succes Scorul dvs.: 2 /8 Precizie: 0% Conectați-vă pentru a vizualiza explicația 1 /8 1 /8 < Previous Următorul >