⊗pyPmFnIFN 22 of 129 menu

Nuanțe în lucrul cu funcțiile interne în Python

În Python pot exista nu numai funcții imbricate, dar și o funcție poate returna alta. De exemplu, să presupunem că funcția outer returnează ca rezultat codul sursă al funcției inner:

def outer(): def inner(): return '+++' return inner

Să înregistrăm apelul outer în variabila res:

res = outer() print(res)

După executarea codului, va fi afișat un obiect cu funcția:

<function outer.<locals>.inner at 0x000001564A212B90>

Dacă însă apelăm variabila res cu paranteze rotunde, va fi returnat mesajul '+++':

print(res()) # va afișa '+++'

Putem rescrie codul astfel încât în res să se înregistreze outer cu două perechi de paranteze rotunde - pentru apelarea ei înseși și a funcției inner. De aici rezultă că putem scrie paranteze rotunde suplimentare în dreapta funcției exterioare, în număr corespunzător funcțiilor imbricate în ea:

res = outer()() print(res) # va afișa '+++'

Este dat următorul cod:

def outer(): def inner(num): return num + 2 return inner res = outer()(3) print(res)

Spuneți ce va fi afișat în consolă.

Este dat următorul cod:

def outer(): def inner(txt): return 'hello, ' + txt return inner res = outer() print(res)

Spuneți ce va fi afișat în consolă.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge