Функция в функция в Python
В Python вътре в едни функции могат да се декларират
други. Нека имаме външна функция
outer, вътре в която се намира
функция inner:
def outer():
def inner():
pass
Даденият по-горе пример изглежда достатъчно
прост. Въпреки това, често има ситуации, когато
в тялото на функцията outer освен
inner се изпълняват и други
операции. За опростяване на кода бихме
могли да изнесем inner във външен блок
от код, но тази функция ще бъде използвана
само веднъж и само вътре във функцията
outer. Затова няма смисъл да се
изнася извън нейните предели.
Нека разгледаме пример, когато във функцията
outer се подава списък. А с помощта на
функцията inner числовият елемент
на списъка ще бъде повдиган на квадрат.
За това след функцията inner
декларираме празен списък res, в
който ще се натрупват елементите,
повдигнати на квадрат в цикъл:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Нека извикаме функцията outer,
подадем й параметър списък и изведем
резултата в конзолата:
print(outer([2, 3, 5])) # ще изведе [4, 9, 25]
Напишете външна и вътрешна функции, чиято съвместна работа ще извежда всеки текстов елемент от списък с главна буква.
Дадени са функции:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Пренапишете кода така, че func1
да бъде вътрешна функция за func2.