Funcții de primă clasă în Python

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.
Test sugerat Editați testul 8 întrebări

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.

Explicaţie:


Î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.

Explicaţie:


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

Explicaţie:

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

Explicaţie:

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

Explicaţie:

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.

Explicaţie:


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

Explicaţie:

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

Explicaţie:

A fi cetățeni de primă clasă înseamnă că funcțiile pot fi atribuite trecute și returnate ca și alte obiecte.

Funcții de primă clasă în PythonTest completat cu succes Scorul dvs.:   2 /8 Precizie:  0% Conectați-vă pentru a vizualiza explicația 1 /8 1 /8 < Previous Următorul >