Функција во функција во 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.