Функции за обратно извикване в Python

В Python има възможност за предаване на функции в параметрите на други функции. При това функции се предават като променливи (без кръгли скоби) и се наричат колбэки. Такива функции за обратно извикване ще се изпълняват в тялото на основната функция.

Нека имаме функция test, която параметър приема число и функция:

pythondef test(num, func):
  pass

Сега нека създадем функция func, която ще повдига число на квадрат:

pythondef func(num):
  return num ** 2

Сега нека се върнем към test и в нейното тяло допишем код, така че предадената в параметър функция за обратно извикване също параметър да приема число. В резултат ще се получи, че резултатът от test ще бъде работата на друга функция, като числото за нея ще се взема от първия параметър на test:

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

След това извикваме функцията test и ѝ подаваме първи параметър 3, а втори - func:

pythontest(3, func) # ще изведе 9
Задание 1

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef get_Info(txt, func):
  print(func(txt))
  
def func(name):
  return 'user name is ' + name
  
get_Info('john', func)