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