Python-da Ýakarlama Funksiýalar
Python-da funksiýalary beýleki funksiýalaryň parametrleri hökmünde ýollap bolýar. Bu ýagdaýda funksiýalar ýönekeý üýtgeýjiler ýaly (ýönekeý aýlawly skobkasyz) ýollanylýar we olara ýakarlama funksiýalar deýilýär. Şeýle ýakarlama funksiýalar esasy funksiýanyň gurňasynda işlediler.
Bizde test diýen funksiýa bar bolsun,
onyň parametri hökmünde san we
funksiýa kabul etýändigini aýdalyň:
def test(num, func):
pass
Indi func atly bir funksiýa döredeliň,
ol sany kwadrat derejä göterýär:
def func(num):
return num ** 2
Indi test funksiýasyna gaýdyp baralyň we
onyň gurňasyna parametr hökmünde ýollanan ýakarlama funksiýanyň hem
öz parametri hökmünde san kabul etmegi üçin kody goşalyň.
Netijede, test funksiýasynyň netijesi beýleki
funksiýanyň işi bolar, onuň üçin sany
test funksiýasynyň birinji parametrinden alynar:
def test(num, func):
print(func(num))
Soňra test funksiýasyny çagyryp,
onyň birinji parametri hökmünde 3, we
ikinji parametri hökmünde func funksiýasyny ýollalyň:
test(3, func) # 9 çykarar
Aşakdaky kodyň işiniň netijesi näme bolar:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'ulanyjynyň ady ' + name
get_Info('john', func)