Pirmās klases funkcijas Python
Python funkcijas tiek uzskatītas par pirmās klases objektiem. Tas nozīmē, ka tos var izmantot tāpat kā ciparu virknes vai jebkuru citu mainīgo. Jūs varat:
- Piešķirt funkcijas mainīgajiem.
- Nododiet tos kā argumentus citām funkcijām.
- Atgrieziet tos no funkcijām.
- Saglabājiet tos datu struktūrās, piemēram, sarakstos vai vārdnīcās.
Šī iespēja ļauj rakstīt atkārtoti lietojamu modulāru un jaudīgu kodu.
Pirmās klases funkciju raksturojums
Python funkcijām ir šādas svarīgas īpašības. Apskatīsim tos pa vienam ar piemēriem:
1. Funkciju piešķiršana mainīgajiem
Mēs varam piešķirt funkciju mainīgajam un izmantojiet mainīgo, lai izsauktu funkciju.
Piemērs:
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' ))
Izvade
Hello Emma!
Paskaidrojums:
- Funkcija msg tiek piešķirta mainīgajam f.
- Tagad f var izmantot, lai izsauktu īsziņu, kas parāda, ka funkcijas darbojas kā mainīgie.
2. Funkciju nodošana kā argumenti
Funkcijas var būt pieņemts kā argumenti uz citām funkcijām, kas nodrošina augstākas kārtas funkcijas .
Piemērs:
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' ))
Izvade
Hello Alex!
Paskaidrojums:
- Funkcija fun1 izmanto citu funkciju (fun2) kā ievadi.
- msg tiek nodota fun1, kas pēc tam to sauc ar "Alex".
3. Funkciju atgriešana no citām funkcijām
Funkcija var atgriezt citu funkciju kas ļauj izveidot funkciju rūpnīcas.
Piemērs:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Izvade
Message: Hello World!
Paskaidrojums:
- Funkcija fun1 definē citu funkciju fun2 un atgriež to.
- func saglabā atgriezto funkciju fun2, kuru var izpildīt vēlāk.
Funkcijas var saglabāt tādās datu struktūrās kā sarakstus vai vārdnīcas .
Piemērs:
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 ))
Izvade
8 2
Paskaidrojums:
- Saskaitīšanas un atņemšanas funkcijas tiek saglabātas vārdnīcā.
- Tiem var piekļūt, izmantojot atslēgas, un tie tiek izpildīti tieši.
Kurš no šiem vislabāk raksturo pirmās klases funkciju programmēšanas valodās?
- A
Funkcija, kuru var izsaukt tikai no tās darbības jomas.
- B
Funkcija, ko var piešķirt mainīgajiem, kas nodoti kā argumenti un atgriezti no citām funkcijām, tāpat kā jebkuru citu objektu.
- C
Funkcija, ko var definēt tikai moduļa augšējā līmenī.
- D
Funkcija, kuru var izpildīt tikai noteiktā kontekstā.
Kas ir augstākās pakāpes funkcija pirmās klases funkciju kontekstā?
- A
Funkcija, kas var atgriezt tikai primitīvus datu tipus.
- B
Funkcija, kas var izmantot citas funkcijas kā argumentus vai atgriezt tās kā rezultātus.
- C
Funkcija, kas ir definēta citā funkcijā, bet kuru nevar atgriezt.
- D
Funkcija, kas tiek izpildīta atsevišķā pavedienā.
Kāda būs šāda koda izvade?
def sveiciens(vārds):
atgriezt 'Sveiks, {name}'
say_hello = sveicināt
print(say_hello('Geek'))
- A
Sveiki sveicināti
- B
sveicināt
- C
Sveiks Gīks
- D
Tipa kļūda
Funkcijas var piešķirt mainīgajiem. Šeit say_hello kļūst par vēl vienu atsauci uz sveicienu.
Kurš no šiem nav pirmās klases funkciju īpašums?
- A
Funkcijas var glabāt datu struktūrās
- B
Funkcijas var piešķirt mainīgajiem
- C
Funkcijas var atgriezt citas funkcijas
- D
Funkcijas var atgriezt tikai primitīvus tipus
Pirmās klases funkcijas var atgriezt jebkura veida, tostarp citas funkcijas, ne tikai primitīvās.
Kāda būs šī koda izvade?
def outer ():
def inner ():
atgriezt "iekšējo funkciju"
atgriezties iekšā
func = ārējais ()
drukāt(funk())
- A
Iekšējā funkcija
- B
iekšējais
- C
ārējā
- D
Kļūda
outer () atgriež iekšējo funkciju un func () to izsauc, atgriežot savu virkni.
Kurš no šiem NAV raksturīgas pirmās klases funkcijām?
- A
Tos var piešķirt mainīgajiem.
- B
Tos var nodot kā argumentus citām funkcijām.
- C
Programmā tos var definēt tikai vienu reizi.
- D
Tos var atgriezt no citām funkcijām.
Kāda ir šāda koda izvade?
def make_multiplier(n):
def reizinātājs(x):
atgriešanās x * n
atdeves reizinātājs
double = make_reizinātājs(2)
drukāt (dubultā (5))
- A
7
- B
10
- C
25
- D
Kļūda
make_multiplier(2) atgriež funkciju, kas reizina tās argumentu ar 2. Tātad double(5) atgriež 10.
Kā Python apstrādā funkcijas attiecībā uz mainīgajiem?
- A
Funkcijas ir statiski objekti
- B
Funkcijas ir konstantes, un tās nevar atkārtoti piešķirt
- C
Funkcijas ir pirmās klases pilsoņi, un tās var saglabāt nokārtotās un atkārtoti piešķirtās
- D
Funkcijas ir jādeklarē kā globālas, lai tās izmantotu
Būt pirmšķirīgam pilsonim nozīmē, ka funkcijas var piešķirt nokārtotas un atgrieztas tāpat kā citiem objektiem.
Viktorīna ir veiksmīgi pabeigta, jūsu rezultāts: 2 /8 Precizitāte: 0% Piesakieties, lai skatītu skaidrojumu 1 /8 1 /8 < Previous Nākamais >