Pirmās klases funkcijas Python

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.
Ieteiktā viktorīna Rediģēt viktorīnu 8 Jautājumi

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

Paskaidrojums:


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

Paskaidrojums:


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

Paskaidrojums:

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

Paskaidrojums:

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

Paskaidrojums:

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.

Paskaidrojums:


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

Paskaidrojums:

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

Paskaidrojums:

Būt pirmšķirīgam pilsonim nozīmē, ka funkcijas var piešķirt nokārtotas un atgrieztas tāpat kā citiem objektiem.

Pirmās klases funkcijas PythonViktorī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 >