ფუნქციები-კოლბექები 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 'მომხმარებლის სახელია ' + name
  
get_Info('john', func)