Функции за обратно извикване в Python
В Python има възможност за предаване на функции в параметрите на други функции. При това функции се предават като променливи (без кръгли скоби) и се наричат колбэки. Такива функции за обратно извикване ще се изпълняват в тялото на основната функция.
Нека имаме функция test,
която параметър приема число и
функция:
def test(num, func):
pass
Сега нека създадем функция func,
която ще повдига число на квадрат:
def func(num):
return num ** 2
Сега нека се върнем към test и в
нейното тяло допишем код, така че предадената в
параметър функция за обратно извикване също параметър да
приема число. В резултат ще се получи, че
резултатът от test ще бъде работата на друга
функция, като числото за нея ще се взема
от първия параметър на test:
def test(num, func):
print(func(num))
След това извикваме функцията test и
ѝ подаваме първи параметър 3, а
втори - func:
test(3, func) # ще изведе 9
Какъв ще бъде резултатът от изпълнението на следния код:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)