Funcții callback în Python
În Python există posibilitatea de a transmite funcții în parametrii altor funcții. În acest caz funcțiile sunt transmise ca variabile (fără paranteze rotunde) și se numesc funcții callback. Aceste funcții-callback vor fi executate în corpul funcției principale.
Să presupunem că avem funcția test,
care ca parametru primește un număr și
o funcție:
def test(num, func):
pass
Acum să creăm funcția func,
care va ridica numărul la pătrat:
def func(num):
return num ** 2
Acum să ne întoarcem la test și în
corpul ei să adăugăm cod, astfel încât funcția
transmisă ca parametru să primească și ea
un număr ca parametru. În final, va rezulta că
rezultatul test va fi execuția altei
funcții, numărul pentru care va fi luat
din primul parametru al funcției test:
def test(num, func):
print(func(num))
Apoi apelăm funcția test și
îi transmitem ca prim parametru 3, iar
ca al doilea - func:
test(3, func) # va afișa 9
Care va fi rezultatul executării următorului cod:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)