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.
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.
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.
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
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
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
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.
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
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
Biti prvorazredni državljani pomenijo, da se lahko dodelijo funkcije, ki jih prenesejo in vrnejo kot drugi predmeti.
Kviz uspešno zaključen Vaš rezultat: 2 /8 Natančnost: 0 % Prijavite se za ogled razlage 1 /8 1 /8 < Previous Naprej >