Pirmos klasės funkcijos Python

Pirmos klasės funkcijos Python

Python funkcijos yra traktuojamos kaip pirmos klasės objektai. Tai reiškia, kad jie gali būti naudojami kaip skaičių eilutės ar bet kuris kitas kintamasis. Galite:

  • Priskirkite funkcijas kintamiesiems.
  • Perduokite juos kaip argumentus kitoms funkcijoms.
  • Grąžinkite juos iš funkcijų.
  • Saugokite juos duomenų struktūrose, pvz., sąrašuose ar žodynuose.

Ši galimybė leidžia rašyti daugkartinį modulinį ir galingą kodą.

Pirmos klasės funkcijų charakteristikos

Python funkcijos turi šias svarbias charakteristikas. Pažiūrėkime juos po vieną su pavyzdžiais:

1. Funkcijų priskyrimas kintamiesiems

Mes galime priskirti funkciją kintamajam ir naudokite kintamąjį funkcijai iškviesti.

Pavyzdys:

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

Išvestis
Hello Emma!  

Paaiškinimas:

  • Funkcija msg priskiriama kintamajam f.
  • Dabar f gali būti naudojamas iškviesti msg, rodantį, kad funkcijos veikia kaip kintamieji.

2. Funkcijų kaip argumentų perdavimas

Funkcijos gali būti priimtas kaip argumentai į kitas įgalinančias funkcijas aukštesnės eilės funkcijos .

Pavyzdys:

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

Išvestis
Hello Alex!  

Paaiškinimas:

  • Funkcija fun1 kaip įvestį naudoja kitą funkciją (fun2).
  • msg perduodamas fun1, kuris tada jį vadina „Alex“.

3. Funkcijų grąžinimas iš kitų funkcijų

Funkcija gali grąžinti kitą funkciją leidžianti kurti funkcines gamyklas.

Pavyzdys:

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

Išvestis
Message: Hello World!  

Paaiškinimas:

  • Funkcija fun1 apibrėžia kitą funkciją fun2 ir ją grąžina.
  • func saugo grąžintą funkciją fun2, kurią galima vykdyti vėliau.

Funkcijos gali būti saugomos tokiose duomenų struktūrose kaip sąrašus arba žodynai .

Pavyzdys:

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

Išvestis
8 2  

Paaiškinimas:

  • Sudėti ir atimti funkcijos saugomos žodyne.
  • Jie pasiekiami naudojant jų raktus ir vykdomi tiesiogiai.
Siūloma viktorina Redaguoti viktoriną 8 klausimai

Kuris iš šių dalykų geriausiai apibūdina pirmos klasės funkciją programavimo kalbomis?

  • A

    Funkcija, kurią galima iškviesti tik iš savo srities.

  • B

    Funkcija, kurią galima priskirti kintamiesiems, perduodamiems kaip argumentai ir grąžintiems iš kitų funkcijų, kaip ir bet kuriam kitam objektui.

  • C

    Funkcija, kurią galima apibrėžti tik viršutiniame modulio lygyje.

  • D

    Funkcija, kurią galima vykdyti tik tam tikrame kontekste.

Paaiškinimas:


Kas yra aukštesnės eilės funkcija pirmos klasės funkcijų kontekste?

  • A

    Funkcija, galinti grąžinti tik primityvius duomenų tipus.

  • B

    Funkcija, kuri gali priimti kitas funkcijas kaip argumentus arba grąžinti jas kaip rezultatus.

  • C

    Funkcija, kuri apibrėžta kitoje funkcijoje, bet negali būti grąžinta.

  • D

    Funkcija, kuri vykdoma atskiroje gijoje.

Paaiškinimas:


Kokia bus šio kodo išvestis?

def sveikinimas(vardas):

grąžinti „Labas, {name}“


pasakyti_labas = pasveikinti

print(say_hello('Geek'))

  • A

    Sveiki sveikinimai

  • B

    pasveikinti

  • C

    Sveiki Geek

  • D

    Tipo klaida

Paaiškinimas:

Funkcijos gali būti priskirtos kintamiesiems. Čia say_hello tampa dar viena sveikinimo nuoroda.

Kuris iš šių dalykų nėra pirmos klasės funkcijų savybė?

  • A

    Funkcijos gali būti saugomos duomenų struktūrose

  • B

    Funkcijos gali būti priskirtos kintamiesiems

  • C

    Funkcijos gali grąžinti kitas funkcijas

  • D

    Funkcijos gali grąžinti tik primityvius tipus

Paaiškinimas:

Pirmos klasės funkcijos gali grąžinti bet kokį tipą, įskaitant kitas funkcijas, neapsiribojant primityviais.

Kokia bus šio kodo išvestis?

def outer ():

def inner ():

grąžinti 'vidinę funkciją'

grįžti į vidų

funkcija = išorinis ()

spausdinti(funkc())

  • A

    Vidinė funkcija

  • B

    vidinis

  • C

    išorinis

  • D

    Klaida

Paaiškinimas:

outer() grąžina vidinę funkciją, o func() iškviečia ją grąžindamas jos eilutę.

Kuris iš šių dalykų NEbūdingas pirmos klasės funkcijoms?

  • A

    Jie gali būti priskirti kintamiesiems.

  • B

    Jie gali būti perduoti kaip argumentai kitoms funkcijoms.

  • C

    Programoje juos galima apibrėžti tik vieną kartą.

  • D

    Juos galima grąžinti iš kitų funkcijų.

Paaiškinimas:


Kokia yra šio kodo išvestis?

def make_multiplier(n):

def daugiklis(x):

grąžinti x * n

grąžos daugiklis

double = make_multiplier (2)

spausdinti (dvigubas (5))

  • A

    7

  • B

    10

  • C

    25

  • D

    Klaida

Paaiškinimas:

make_multiplier(2) grąžina funkciją, kuri savo argumentą padaugina iš 2. Taigi double(5) grąžina 10.



Kaip Python apdoroja funkcijas, susijusias su kintamaisiais?

  • A

    Funkcijos yra statiški objektai

  • B

    Funkcijos yra konstantos ir jų negalima priskirti iš naujo

  • C

    Funkcijos yra aukščiausios klasės, todėl jas galima išsaugoti ir priskirti iš naujo

  • D

    Funkcijos turi būti paskelbtos visuotinėmis, kad būtų naudojamos

Paaiškinimas:

Pirmos klasės piliečiai reiškia, kad funkcijas galima priskirti ir grąžinti kaip ir kitus objektus.

Pirmos klasės funkcijos PythonViktorina sėkmingai atlikta jūsų balas:   2 /8 Tikslumas:  0 % Prisijunkite, kad pamatytumėte paaiškinimą 1 /8 1 /8 < Previous Kitas >