Tagasikutsefunktsioonid Pythonis

Pythonis on võimalik funktsioone edastada teiste funktsioonide parameetritena. Sel juhul edastatakse funktsioone nagu muutujaid (ilma ümarsulgudeta) ja neid nimetatakse tagasikutsefunktsioonideks. Sellised tagasikutsefunktsioonid täidetakse põhifunktsiooni kehas.

Oletame, et meil on funktsioon test, mis parameetrina võtab arvu ja funktsiooni:

pythondef test(num, func):
  pass

Nüüd loome funktsiooni func, mis tõstab arvu ruutu:

pythondef func(num):
  return num ** 2

Nüüd pöördume tagasi funktsiooni test juurde ja kirjutame selle kehasse koodi nii, et parameetrina edastatud tagasikutsefunktsioon võtaks samuti parameetrina arvu. Lõpuks selgub, et funktsiooni test tulemuseks on teise funktsiooni töö, mille arv võetakse funktsiooni test esimesest parameetrist:

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

Seejärel kutsume välja funktsiooni test ja edastame sellele esimese parameetrina 3, ja teise parameetrina - func:

pythontest(3, func) # väljastab 9
Задание 1

Milline on järgmise koodi täitmise tulemus:

pythondef get_Info(txt, func):
  print(func(txt))
  
def func(name):
  return 'kasutaja nimi on ' + name
  
get_Info('john', func)