Функсияҳои callback дар Python

Дар Python имконияти интиқол додани функсияҳо ба параметрҳои дигар функсияҳо мавҷуд аст. Дар ин ҳол функсияҳо ҳамчун тағйирёбандаҳо (бидуни қавсҳои даврӣ) интиқол дода мешаванд ва коллбэкҳо ном гирифтаанд. Чунин функсияҳои callback дар бадани функсияи асосӣ иҷро карда мешаванд.

Фарз кунем, ки мо функсияи test дорем, ки параметраш рақам ва функсияро қабул мекунад:

pythondef test(num, func):
  pass

Ҳоло биёед функсияи func эҷод кунем, ки рақамро ба дараҷаи квадратӣ мебарад:

pythondef func(num):
  return num ** 2

Ҳоло ба test баргардед ва дар бадани он рамзеро илова кунед, то функсияи callback-и дар параметр интиқолдодашуда низ параметраш рақамро қабул кунад. Дар натиҷа, маълум мешавад, ки натиҷаи 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)