Funkcje zwrotne (callback) w Pythonie
W Pythonie istnieje możliwość przekazywania funkcji jako parametrów innych funkcji. W takim przypadku funkcje są przekazywane jako zmienne (bez okrągłych nawiasów) i nazywane są funkcjami zwrotnymi (callback). Takie funkcje zwrotne będą wykonywane w ciele funkcji głównej.
Załóżmy, że mamy funkcję test,
która przyjmuje jako parametr liczbę i
funkcję:
def test(num, func):
pass
Teraz utwórzmy funkcję func,
która będzie podnosić liczbę do kwadratu:
def func(num):
return num ** 2
Teraz wróćmy do test i w
jej ciele dopiszmy kod, tak aby przekazana w
parametrze funkcja zwrotna również przyjmowała liczbę jako parametr.
Ostatecznie okaże się, że
wynikiem test będzie wykonanie innej
funkcji, gdzie liczba dla niej będzie brana
z pierwszego parametru test:
def test(num, func):
print(func(num))
Następnie wywołujemy funkcję test i
przekazujemy jej pierwszym parametrem 3, a
drugim - func:
test(3, func) # wypisze 9
Jaki będzie wynik wykonania następującego kodu:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'nazwa użytkownika to ' + name
get_Info('john', func)