Függvény függvényben Pythonban

A Pythonban egyes függvények belsejében deklarálhatunk másokat. Tegyük fel, hogy van egy külső függvényünk outer, amelynek belsejében található a inner függvény:

pythondef outer():
  def inner():
    pass

A fenti példa elég egyszerűnek tűnik. Azonban gyakran előfordulnak olyan helyzetek, amikor a outer függvény törzsében a inner mellett más műveletek is végrehajtódnak. A kód egyszerűsítése érdekében ki lehetne helyezni a inner-t a külső kódblokkba, de ez a függvény csak egyszer és csak a outer függvényen belül lesz használva. Ezért nincs értelme kivenni a határain túlra.

Nézzünk egy példát, ahol a outer függvénynek egy lista adódik át. A inner függvény segítségével a lista számelemeit négyzetre emeljük. Ehhez a inner függvény után deklarálunk egy üres res listát, amelybe a ciklusban négyzetre emelt elemek gyűlnek:

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

  res = []

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

  return res

Hívjuk meg a outer függvényt, adjunk át neki egy listát paraméterként, és írjuk ki az eredményt a konzolra:

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

Írjon külső és belső függvényeket, amelyek együttes munkája a lista minden egyes karakterlánc elemét nagybetűvel írja ki.

Задание 2

Adottak a következő függvények:

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

  return res

Írja át a kódot úgy, hogy a func1 belső függvénye legyen a func2-nek.