⊗pyPmFnIFN 22 of 129 menu

Nyanser vid arbete med inre funktioner i Python

I Python kan det finnas inte bara nästlade funktioner, utan en funktion kan också returnera en annan. Till exempel, låt funktionen outer returnera som resultat källkoden för funktionen inner:

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

Låt oss registrera anropet outer i variabeln res:

res = outer() print(res)

Efter att koden har körts kommer ett objekt med funktionen att skrivas ut:

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

Om man anropar variabeln res med runda parenteser, så returneras meddelandet '+++':

print(res()) # skriver ut '+++'

Koden kan skrivas om så att res registreras som outer med två runda parenteser - för att anropa sig själv och funktionen inner. Av detta följer att man kan lägga till ytterligare runda parenteser till höger om den yttre funktionen, motsvarande antalet funktioner som är nästlade i den:

res = outer()() print(res) # skriver ut '+++'

Följande kod ges:

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

Säg vad som skrivs ut i konsolen.

Följande kod ges:

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

Säg vad som skrivs ut i konsolen.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa