Függvény függvényben Pythonban
A Pythonban egyes függvények belsejében deklarálhatunk
másokat. Tegyük fel, hogy van egy külső függvényünk
outer, amelynek belsejében található a
inner függvény:
def outer():
def inner():
pass
A fenti példa elég egyszerűnek tűnik.
Azonban gyakran előfordulnak olyan helyzetek, amikor
a outer függvény törzsében a
inner mellett más műveletek is
végrehajtódnak. A kód egyszerűsítése érdekében
ki lehetne helyezni a inner-t a külső kódblokkba,
de ez a függvény csak
egyszer és csak a outer függvényen belül lesz használva.
Ezért nincs értelme kivenni a határain túlra.
Nézzünk egy példát, ahol a
outer függvénynek egy lista adódik át.
A inner függvény segítségével a lista
számelemeit négyzetre emeljük.
Ehhez a inner függvény után
deklarálunk egy üres res listát,
amelybe a ciklusban négyzetre emelt
elemek gyűlnek:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Hívjuk meg a outer függvényt,
adjunk át neki egy listát paraméterként, és írjuk ki
az eredményt a konzolra:
print(outer([2, 3, 5])) # kimenet: [4, 9, 25]
Írjon külső és belső függvényeket, amelyek együttes munkája a lista minden egyes karakterlánc elemét nagybetűvel írja ki.
Adottak a következő függvények:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Írja át a kódot úgy, hogy a func1
belső függvénye legyen a func2-nek.