Python-da funksiýanyň içinde funksiýa
Python-da bir funksiýalaryň içinde beýlekileri
bildirip bolýar. Bizde daşarky funksiýa
outer bolsun, onuň içinde bolsa
inner funksiýasy bar:
def outer():
def inner():
pass
Ýokarda görkezilen mysal ýeterlik derejede
ýönekeý görünýär. Emma köplenç ýagdaýlar
bar, haçanda outer funksiýasynyň
bedeninde inner-den başga-da
beýleki amallar ýerine ýetirilýär. Kody
ýönekeýleşdirmek üçin, inner
daşarky kod blogyna çykaryp bolardy,
ýöne bu funksiýa diňe bir gezek we diňe
outer funksiýasynyň içinde ulanylar.
Şonuň üçin ony çäklerinden daşary çykarmak
mana berenok.
Geliň bir mysala serediň, haçanda
outer funksiýasyna sanlar sanawy
berilýär. We inner funksiýasynyň
ýardamy bilen sanawdaky san element
inenedört derejä ýokarlandyrylar. Bunuň
üçin inner funksiýasyndan soň
boş sanawy res bildirýäris,
onda döwüre gönükdirilen elementler
ýygnanar:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Geliň outer funksiýasyny çagyralym,
ona parametr sanawyny bereliň we netijäni
konsola çykaralyň:
print(outer([2, 3, 5])) # [4, 9, 25] çykarar
Daşarky we içarky funksiýalary ýazyň, olanaryň bilelikde işi sanawyň her setir elementini baş harp bilen çykarsyn.
Funksiýalar berlen:
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 funksiýasynyň func2
üçin içarky funksiýa bolmagy üçin kody
ýene ýazyň.