Funkcija v funkciji v Pythonu
V Pythonu je mogoče znotraj enih funkcij deklarirati
druge. Recimo, da imamo zunanjo funkcijo
outer, znotraj katere je funkcija
inner:
def outer():
def inner():
pass
Zgornji primer izgleda dokaj preprosto.
Vendar pa so pogosto situacije, ko se
v telesu funkcije outer poleg
inner izvajajo še druge
operacije. Za poenostavitev kode bi
lahko inner premaknili v zunanji blok
kode, vendar bo ta funkcija uporabljena
le enkrat in samo znotraj funkcije
outer. Zato je njenega premikanja
ven nesmiselno.
Oglejmo si primer, ko se v funkcijo
outer posreduje seznam. S pomočjo
funkcije inner bo številski element
seznama dvignjen na kvadratno
potenco. Za to po funkciji inner
deklariramo prazen seznam res, v
katerega bomo zlagali elemente,
dvignjene na kvadrat v zanki:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Pokličimo funkcijo outer,
posredujmo ji parameter seznam in izpišimo
rezultat v konzolo:
print(outer([2, 3, 5])) # izpiše [4, 9, 25]
Napišite zunanjo in notranjo funkcijo, katerih skupno delovanje bo izpisovalo vsak nizni element seznama z veliko začetnico.
Podane so 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 kodo tako, da bo func1
notranja funkcija za func2.