Ֆունկցիաներ-կոլբեքներ Python-ում

Python-ում կա հնարավորություն՝ ֆունկցիաներ փոխանցել այլ ֆունկցիաների պարամետրերով: Այդ դեպքում ֆունկցիաները փոխանցվում են որպես փոփոխականներ (առանց կլոր փակագծերի) և կոչվում են կոլբեքներ: Նման ֆունկցիաներ-կոլբեքներ կկատարվեն հիմնական ֆունկցիայի մարմնում:

Ենթադրենք՝ մենք ունենք test ֆունկցիան, որը պարամետրով ընդունում է թիվ և ֆունկցիա:

pythondef test(num, func):
  pass

Հիմա եկեք ստեղծենք func ֆունկցիան, որը թիվը կբարձրացնի քառակուսի աստիճան:

pythondef func(num):
  return num ** 2

Հիմա եկեք վերադառնանք test-ին և նրա մարմնում ավելացնենք կոդ, որպեսզի պարամետրով փոխանցված ֆունկցիա-կոլբեքը նույնպես պարամետրով ընդունի թիվ: Արդյունքում կստացվի, որ test-ի արդյունքը կլինի մեկ այլ ֆունկցիայի աշխատանքը, որի համար թիվը կվերցվի test-ի առաջին պարամետրից:

pythondef test(num, func):
  print(func(num))

Հաջորդը կանչում ենք test ֆունկցիան և փոխանցում ենք դրան առաջին պարամետրով 3, իսկ երկրորդով՝ func-ը:

pythontest(3, func) # կարտածի 9
Задание 1

Ինչ կլինի հետևյալ կոդի կատարման արդյունքը:

pythondef get_Info(txt, func):
  print(func(txt))
  
def func(name):
  return 'user name is ' + name
  
get_Info('john', func)