⊗pyPmFnIFN 22 of 129 menu

Nuancer ved arbejde med interne funktioner i Python

I Python kan der ikke kun være nestede funktioner, men en funktion kan også returnere en anden. For eksempel, lad funktionen outer returnere kildekoden for funktionen inner som resultat:

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

Lad os gemme kaldet af outer i variablen res:

res = outer() print(res)

Efter udførelse af koden vil et objekt med funktionen blive vist:

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

Hvis man derimod kalder variablen res med parenteser, vil beskeden '+++' blive returneret:

print(res()) # vil vise '+++'

Man kan omskrive koden, så res gemmer outer med to parenteser - for at kalde sig selv og funktionen inner. Heraf følger, at man kan skrive yderligere parenteser til højre for den ydre funktion efter antallet af funktioner nestede i den:

res = outer()() print(res) # vil vise '+++'

Følgende kode er givet:

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

Sig, hvad der vil blive vist i konsollen.

Følgende kode er givet:

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

Sig, hvad der vil blive vist i konsollen.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis