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.
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.
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.
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
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
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
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ų.
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
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
Pirmos klasės piliečiai reiškia, kad funkcijas galima priskirti ir grąžinti kaip ir kitus objektus.
Viktorina sėkmingai atlikta jūsų balas: 2 /8 Tikslumas: 0 % Prisijunkite, kad pamatytumėte paaiškinimą 1 /8 1 /8 < Previous Kitas >