Prvorazredne funkcije v Pythonu

Prvorazredne funkcije v Pythonu

V Pythonu se funkcije obravnavajo kot prvorazredni objekti. To pomeni, da jih je mogoče uporabiti tako kot številske nize ali katero koli drugo spremenljivko. Lahko:

  • Spremenljivkam dodeli funkcije.
  • Posredujte jih kot argumente drugim funkcijam.
  • Vrnite jih iz funkcij.
  • Shranite jih v podatkovne strukture, kot so seznami ali slovarji.

Ta sposobnost vam omogoča pisanje modularne in zmogljive kode za večkratno uporabo.

Značilnosti prvorazrednih funkcij

Funkcije v Pythonu imajo naslednje pomembne značilnosti. Oglejmo si jih enega za drugim s primeri:

1. Dodeljevanje funkcij spremenljivkam

Mi lahko dodelite funkcijo spremenljivki in uporabite spremenljivko za klic funkcije.

primer:

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

Izhod
Hello Emma!  

Pojasnilo:

  • Funkcija msg je dodeljena spremenljivki f.
  • Zdaj lahko f uporabite za klic msg, ki kaže, da se funkcije obnašajo kot spremenljivke.

2. Posredovanje funkcij kot argumentov

Funkcije so lahko prešli kot argumenti omogočanje drugih funkcij funkcije višjega reda .

primer:

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

Izhod
Hello Alex!  

Pojasnilo:

  • Funkcija fun1 sprejme drugo funkcijo (fun2) kot vhod.
  • msg se posreduje fun1, ki ga nato pokliče z 'Alex'.

3. Vrnitev funkcij iz drugih funkcij

Funkcija lahko vrni drugo funkcijo omogoča ustvarjanje funkcijskih tovarn.

primer:

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

Izhod
Message: Hello World!  

Pojasnilo:

  • Funkcija fun1 definira drugo funkcijo fun2 in jo vrne.
  • func shrani vrnjeno funkcijo fun2, ki se lahko izvede pozneje.

Funkcije se lahko shranijo v podatkovne strukture, kot je sezname oz slovarji .

primer:

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

Izhod
8 2  

Pojasnilo:

  • Funkciji seštevanja in odštevanja sta shranjeni v slovarju.
  • Do njih se dostopa z njihovimi ključi in se izvajajo neposredno.
Predlagani kviz Uredi kviz 8 vprašanj

Kaj od naslednjega najbolje opisuje prvovrstno funkcijo v programskih jezikih?

  • A

    Funkcija, ki jo je mogoče poklicati samo znotraj njenega obsega.

  • B

    Funkcija, ki jo je mogoče dodeliti spremenljivkam, posredovanim kot argumenti in vrnjenim iz drugih funkcij kot kateri koli drug predmet.

  • C

    Funkcija, ki jo je mogoče definirati le na najvišji ravni modula.

  • D

    Funkcija, ki jo je mogoče izvesti le v določenem kontekstu.

Pojasnilo:


Kaj je v kontekstu prvorazrednih funkcij funkcija višjega reda?

  • A

    Funkcija, ki lahko vrne le primitivne vrste podatkov.

  • B

    Funkcija, ki lahko sprejme druge funkcije kot argumente ali jih vrne kot rezultate.

  • C

    Funkcija, ki je definirana znotraj druge funkcije, vendar je ni mogoče vrniti.

  • D

    Funkcija, ki se izvaja v ločeni niti.

Pojasnilo:


Kakšen bo rezultat naslednje kode?

def pozdrav (ime):

return f'Pozdravljeni {name}'


say_hello = pozdravi

print(say_hello('Geek'))

  • A

    Pozdravljeni

  • B

    pozdraviti

  • C

    Pozdravljeni Geek

  • D

    TypeError

Pojasnilo:

Spremenljivkam je mogoče dodeliti funkcije. Tukaj say_hello postane še ena referenca za pozdrav.

Kaj od naslednjega ni lastnost prvorazrednih funkcij?

  • A

    Funkcije je mogoče shraniti v podatkovne strukture

  • B

    Spremenljivkam je mogoče dodeliti funkcije

  • C

    Funkcije lahko vrnejo druge funkcije

  • D

    Funkcije lahko vrnejo samo primitivne tipe

Pojasnilo:

Prvorazredne funkcije lahko vrnejo katero koli vrsto, vključno z drugimi funkcijami – ne omejeno na primitive.

Kakšen bo rezultat te kode?

def zunanji():

def notranji():

vrni 'Notranja funkcija'

vrnitev notranja

func = zunanji()

natisni(func())

  • A

    Notranja funkcija

  • B

    notranji

  • C

    zunanji

  • D

    Napaka

Pojasnilo:

outer() vrne notranjo funkcijo, func() pa jo pokliče in vrne njen niz.

Kaj od naslednjega NI značilnost prvorazrednih funkcij?

  • A

    Lahko jih dodelimo spremenljivkam.

  • B

    Lahko jih posredujete kot argumente drugim funkcijam.

  • C

    V programu jih je mogoče definirati samo enkrat.

  • D

    Vrnejo se lahko iz drugih funkcij.

Pojasnilo:


Kakšen je rezultat naslednje kode?

def make_multiplier(n):

def množitelj (x):

vrnitev x * n

povratni množitelj

dvojno = make_multiplikator(2)

print(double(5))

  • A

    7

  • B

    10

  • C

    25

  • D

    Napaka

Pojasnilo:

make_multiplier(2) vrne funkcijo, ki svoj argument pomnoži z 2. Double(5) torej vrne 10.



Kako Python obravnava funkcije glede na spremenljivke?

  • A

    Funkcije so statični objekti

  • B

    Funkcije so konstante in jih ni mogoče prerazporediti

  • C

    Funkcije so prvorazredni državljani in jih je mogoče shraniti in prerazporediti

  • D

    Za uporabo je treba funkcije razglasiti za globalne

Pojasnilo:

Biti prvorazredni državljani pomenijo, da se lahko dodelijo funkcije, ki jih prenesejo in vrnejo kot drugi predmeti.

Prvorazredne funkcije v PythonuKviz uspešno zaključen Vaš rezultat:   2 /8 Natančnost:  0 % Prijavite se za ogled razlage 1 /8 1 /8 < Previous Naprej >