⊗pyPmFnIFN 22 of 129 menu

Sfumature nell'utilizzo delle funzioni interne in Python

In Python possono esistere non solo funzioni nidificate, ma una funzione può anche restituirne un'altra. Ad esempio, supponiamo che la funzione outer restituisca come risultato il codice sorgente della funzione inner:

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

Assegniamo la chiamata di outer alla variabile res:

res = outer() print(res)

Dopo l'esecuzione del codice, verrà visualizzato l'oggetto con la funzione:

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

Se invece si chiama la variabile res con le parentesi tonde, verrà restituito il messaggio '+++':

print(res()) # restituirà '+++'

È possibile riscrivere il codice in modo che in res venga assegnata outer con due paia di parentesi tonde - per chiamare se stessa e la funzione inner. Ne consegue che si possono scrivere parentesi tonde aggiuntive a destra della funzione esterna in base al numero di funzioni in essa nidificate:

res = outer()() print(res) # restituirà '+++'

È dato il seguente codice:

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

Indicare cosa verrà stampato in console.

È dato il seguente codice:

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

Indicare cosa verrà stampato in console.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta