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:
def 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:
def 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:
print(outer([2, 3, 5])) # sal [4, 9, 25] uitdruk
Skryf 'n buitenste en 'n innerlike funksie, waarvan die gesamentlike werk elke stringelement van die lys met 'n hoofletter sal druk.
Gegee funksies:
def 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.