Funkcija funkcijā Python
Python iekšā vienās funkcijās var deklarēt
citas. Pieņemsim, ka mums ir ārējā funkcija
outer, kuras iekšpusē atrodas
funkcija inner:
def outer():
def inner():
pass
Iepriekš minētais piemērs izskatās pietiekami
vienkārši. Tomēr bieži rodas situācijas, kad
funkcijas outer pamattekstā, izņemot
inner, tiek izpildītas arī citas
darbības. Lai vienkāršotu kodu, varēja
iznest inner uz ārējo koda bloku,
taču šī funkcija tiks izmantota
tikai vienu reizi un tikai funkcijas
outer iekšienē. Tāpēc to iznest ārpusē
nav jēgas.
Apskatīsim piemēru, kad funkcijai
outer tiek nodots saraksts. Un ar funkcijas
inner palīdzību skaitliskais
saraksta elements tiks pacelts kvadrātā.
Lai to izdarītu, pēc funkcijas inner
deklarējam tukšu sarakstu res, kurā
tiks uzkrāti elementi,
kas ciklā pacelti kvadrātā:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Izsauksim funkciju outer,
padodam tai parametru sarakstu un izvadām
rezultātu konsolē:
print(outer([2, 3, 5])) # izvadīs [4, 9, 25]
Uzrakstiet ārējo un iekšējo funkciju, kuru kopīgais darbs izvadīs katru virknes elementu sarakstā ar lielo burtu.
Dotas funkcijas:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Pārrakstiet kodu tā, lai func1
būtu iekšējā funkcija priekš func2.