Функция ішіндегі функция 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 үшін
ішкі функция болатындай етіп қайта жазыңыз.