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:
def test(num, func):
pass
Nüüd loome funktsiooni func,
mis tõstab arvu ruutu:
def 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:
def test(num, func):
print(func(num))
Seejärel kutsume välja funktsiooni test ja
edastame sellele esimese parameetrina 3, ja
teise parameetrina - func:
test(3, func) # väljastab 9
Milline on järgmise koodi täitmise tulemus:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'kasutaja nimi on ' + name
get_Info('john', func)