Funkcia v funkcii v Python
V Python je možné deklarovať inside
jedných funkcií ďalšie. Nech máme vonkajšiu funkciu
outer, inside ktorej sa nachádza
funkcia inner:
def outer():
def inner():
pass
Uvedený príklad vyzerá dosť
jednoducho. Avšak často nastávajú situácie, kedy
v tele funkcie outer okrem
inner vykonávajú sa aj ďalšie
operácie. Pre zjednodušenie kódu by sa
dalo vyniesť inner do vonkajšieho bloku
kódu, avšak táto funkcia bude použitá
len raz a len inside funkcie
outer. Preto jej vynášať mimo
nemá zmysel.
Pozrime sa na príklad, kedy do funkcie
outer je odovzdaný zoznam. A pomocou
funkcie inner bude číselný element
zoznamu umocnený na druhú
stupeň. Na to po funkcii inner
deklarujeme prázdny zoznam res, v
ktorom sa budú akumulovať elementy,
umocnené na druhú v cykle:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Zavolajme funkciu outer,
odovzdajme jej parameter zoznam a vypíšme
výsledok do konzoly:
print(outer([2, 3, 5])) # vypíše [4, 9, 25]
Napíšte vonkajšiu a vnútornú funkciu, spoločná práca ktorých bude vypisovať každý reťazcový element zoznamu s veľkým počiatočným písmenom.
Dané funkcie:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Prepíšte kód tak, aby func1
bola vnútornou funkciou pre func2.