Funksie in Funksie in Python

In Python kan jy ander funksies binne een funksie verklaar. Kom ons het 'n buitenste funksie outer, binne-in welke daar 'n funksie inner is:

pythondef outer():
  def inner():
    pass

Die voorbeeld hierbo lyk eenvoudig genoeg. Daar is egter dikwels situasies wanneer ander operasies ook in die liggaam van die funksie outer uitgevoer word, benewens inner. Om die kode te vereenvoudig, kon mens inner na die buitenste blok verskuif, maar hierdie funksie sal slegs een keer gebruik word en slegs binne die funksie outer. Daarom is dit nie sinvol om dit na buite te skuif nie.

Kom ons kyk na 'n voorbeeld waar 'n lys aan die funksie outer oorgedra word. En met behulp van die funksie inner sal die numeriese element van die lys tot die kwadraat verhef word. Om dit te doen, verklaar ons 'n leë lys res na die funksie inner, waarin elemente wat in die lus tot die kwadraat verhef is, sal opgehoop word:

pythondef outer(lst):
  def inner(num):
    return num ** 2

  res = []

  for el in lst:
    res.append(inner(el))

  return res

Kom ons roep die funksie outer, gee 'n lys as parameter daaraan en druk die resultaat op die konsole:

pythonprint(outer([2, 3, 5])) # sal [4, 9, 25] uitdruk
Задание 1

Skryf 'n buitenste en 'n innerlike funksie, waarvan die gesamentlike werk elke stringelement van die lys met 'n hoofletter sal druk.

Задание 2

Gegee funksies:

pythondef func1(num):
  if num > 0:
    num += 2
  return num
  
def func2(iter):
  res = []
  for el in iter:
    res.append(func1(el))

  return res

Herskryf die kode sodat func1 'n innerlike funksie vir func2 is.