Ֆունկցիաներ-կոլբեքներ Python-ում
Python-ում կա հնարավորություն՝ ֆունկցիաներ փոխանցել այլ ֆունկցիաների պարամետրերով: Այդ դեպքում ֆունկցիաները փոխանցվում են որպես փոփոխականներ (առանց կլոր փակագծերի) և կոչվում են կոլբեքներ: Նման ֆունկցիաներ-կոլբեքներ կկատարվեն հիմնական ֆունկցիայի մարմնում:
Ենթադրենք՝ մենք ունենք test ֆունկցիան,
որը պարամետրով ընդունում է թիվ և
ֆունկցիա:
def test(num, func):
pass
Հիմա եկեք ստեղծենք func ֆունկցիան,
որը թիվը կբարձրացնի քառակուսի աստիճան:
def func(num):
return num ** 2
Հիմա եկեք վերադառնանք test-ին և
նրա մարմնում ավելացնենք կոդ, որպեսզի պարամետրով փոխանցված ֆունկցիա-կոլբեքը նույնպես պարամետրով
ընդունի թիվ: Արդյունքում կստացվի, որ
test-ի արդյունքը կլինի մեկ այլ
ֆունկցիայի աշխատանքը, որի համար թիվը կվերցվի
test-ի առաջին պարամետրից:
def test(num, func):
print(func(num))
Հաջորդը կանչում ենք test ֆունկցիան և
փոխանցում ենք դրան առաջին պարամետրով 3, իսկ
երկրորդով՝ func-ը:
test(3, func) # կարտածի 9
Ինչ կլինի հետևյալ կոդի կատարման արդյունքը:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)