Callback-funktiot Pythonissa
Pythonissa on mahdollista välittää funktioita muiden funktioiden parametreina. Tässä tapauksessa funktiot välitetään muuttujina (ilman pyöreitä sulkeita) ja niitä kutsutaan callback-funktioiksi. Tällaiset callback-funktiot suoritetaan pääfunktion rungossa.
Oletetaan, että meillä on funktio test,
joka parametrina vastaanottaa numeron ja
funktion:
def test(num, func):
pass
Luodaan nyt funktio func,
joka nostaa numeron neliöön:
def func(num):
return num ** 2
Palataan nyt takaisin test:ään ja
kirjoitetaan sen runkoon koodia, jotta parametrina
välitetty callback-funktio myös vastaanottaisi parametrinaan
numeron. Lopputuloksena on, että
test:in tulos on toisen funktion
suoritus, jonka numero otetaan
test:in ensimmäisestä parametrista:
def test(num, func):
print(func(num))
Seuraavaksi kutsutaan funktiota test ja
välitetään sille ensimmäisenä parametrina 3, ja
toisena - func:
test(3, func) # tulostaa 9
Mikä on seuraavan koodin suorituksen tulos:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'käyttäjän nimi on ' + name
get_Info('john', func)