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:

pythondef test(num, func):
  pass

Luodaan nyt funktio func, joka nostaa numeron neliöön:

pythondef 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:

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

Seuraavaksi kutsutaan funktiota test ja välitetään sille ensimmäisenä parametrina 3, ja toisena - func:

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

Mikä on seuraavan koodin suorituksen tulos:

pythondef get_Info(txt, func):
  print(func(txt))
  
def func(name):
  return 'käyttäjän nimi on ' + name
  
get_Info('john', func)