A belső függvények használatának finomságai Pythonban
A Pythonban nem csak beágyazott
függvények létezhetnek, de egy függvény
vissza is adhat egy másikat. Például legyen a outer
függvény, amely visszaadja eredményként
a inner függvény forráskódját:
def outer():
def inner():
return '+++'
return inner
Írjuk fel a outer hívását a
res változóba:
res = outer()
print(res)
A kód végrehajtása után egy függvényobjektum jelenik meg:
<function outer.<locals>.inner at 0x000001564A212B90>
Ha viszont a res változót zárójelekkel
hívjuk meg, akkor a '+++' üzenet
adódik vissza:
print(res()) # kiírja '+++'
Át lehet írni a kódot úgy, hogy a res
változóba a outer kerüljön két zárójellel -
magának a függvénynek és a inner függvénynek
a meghívására. Ebből következik, hogy további
zárójeleket lehet írni a külső függvénytől jobbra,
az abba ágyazott függvények számának megfelelően:
res = outer()()
print(res) # kiírja '+++'
A következő kód adott:
def outer():
def inner(num):
return num + 2
return inner
res = outer()(3)
print(res)
Mondd meg, mi jelenik meg a konzolon.
A következő kód adott:
def outer():
def inner(txt):
return 'hello, ' + txt
return inner
res = outer()
print(res)
Mondd meg, mi jelenik meg a konzolon.