Vitendo-vigeu (Callbacks) katika Python

Katika Python kuna uwezekano wa kupitisha vitendo katika vigeu vya vitendo vingine. Wakati huo vitendo vinapitiswa kama vigeu (bila mabano ya mviringo) na huitwa vitendo-vigeu (callbacks). Vitendo hivi-vigeu vitatekelezwa katika mwili wa kitendo kikuu.

Wacha tuwe na kitendo test, kinachokubali namba kama kigeu na kitendo:

pythondef test(num, func):
  pass

Sasa wacha tuunde kitendo func, ambacho kitainua namba kwa mraba:

pythondef func(num):
  return num ** 2

Sasa wacha turudi kwenye test na katika mwili wake tuandae msimbo, ili kitendo-vigeu kilichopitishwa katika kigeu pia kikubali namba kama kigeu. Mwishowe itafika kwamba matokeo ya test yatakuwa kazi ya kitendo kingine, ambacho namba yake itachukuliwa kutoka kwa kigeu cha kwanza cha test:

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

Ifuatayo tunaita kitendo test na tunakipitishia kigeu cha kwanza 3, na cha pili - func:

pythontest(3, func) # itatoa 9
Задание 1

Matokeo yatakuwa nini kutokana na utekelezaji wa msimbo ufuatao:

pythondef get_Info(txt, func):
  print(func(txt))
  
def func(name):
  return 'Jina la mtumiaji ni ' + name
  
get_Info('john', func)