Funkcija funkcijoje Python
Python viduje vienų funkcijų galima aprašyti
kitas. Tarkime, kad turime išorinę funkciją
outer, kurios viduje yra
funkcija inner:
def outer():
def inner():
pass
Aukščiau pateiktas pavyzdys atrodo pakankamai
paprastas. Tačiau dažnai pasitaiko situacijų, kai
funkcijos outer kūne, be
inner, atliekami ir kiti
veiksmai. Norint supaprastinti kodą, galima
būtų išskirti inner į išorinį kodo
bloką, tačiau ši funkcija bus panaudota
tik vieną kartą ir tik funkcijos
outer viduje. Todėl nėra prasmės
ją išskirti.
Pažiūrėkime pavyzdį, kai į funkciją
outer perduodamas sąrašas. O naudojant
funkciją inner skaitmeninis sąrašo
elementas bus pakeliamas kvadratu.
Tam, po funkcijos inner
aprašome tuščią sąrašą res, į
kurį bus renkami elementai,
pakelti kvadratu cikle:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Iškvikime funkciją outer,
perduokime jai parametrą sąrašą ir išveskime
rezultatą į konsolę:
print(outer([2, 3, 5])) # išves [4, 9, 25]
Parašykite išorinę ir vidinę funkcijas, kurių bendras veikimas išvestų kiekvieną eilutės sąrašo elementą didžiąja raide.
Duotos funkcijos:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Perrašykite kodą taip, kad func1
būtų vidine func2 funkcija.