Funkcija u funkciji u Pythonu
U Pythonu je moguće deklarisati jedne funkcije
unutar drugih. Neka imamo spoljnu funkciju
outer, unutar koje se nalazi
funkcija inner:
def outer():
def inner():
pass
Gore navedeni primer izgleda prilično
jednostavno. Međutim, često postoje situacije kada
u telu funkcije outer pored
inner izvršavaju se i druge
operacije. Radi pojednostavljenja koda
bi bilo moguće izdvojiti inner u spoljni blok
koda, međutim ova funkcija će se koristiti
samo jednom i samo unutar funkcije
outer. Stoga nema smisla nju
izdvajati.
Hajde da razmotrimo primer, kada u funkciju
outer bude prosleđena lista. A pomoću
funkcije inner će numerički element
liste biti podignut na kvadrat.
Za ovo nakon funkcije inner
deklarišemo praznu listu res, u
kojoj će se akumulirati elementi,
kvadrirani u petlji:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Hajde da pozovemo funkciju outer,
prosledimo joj parametar listu i ispišemo
rezultat u konzolu:
print(outer([2, 3, 5])) # ispisaće [4, 9, 25]
Napišite spoljnu i unutrašnju funkciju, čiji će zajednički rad ispisivati svaki element liste tipa string sa velikim početnim slovom.
Date su funkcije:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Prepišite kod tako da func1
bude unutrašnja funkcija za func2.