Функсияҳои callback дар Python
Дар Python имконияти интиқол додани функсияҳо ба параметрҳои дигар функсияҳо мавҷуд аст. Дар ин ҳол функсияҳо ҳамчун тағйирёбандаҳо (бидуни қавсҳои даврӣ) интиқол дода мешаванд ва коллбэкҳо ном гирифтаанд. Чунин функсияҳои callback дар бадани функсияи асосӣ иҷро карда мешаванд.
Фарз кунем, ки мо функсияи test дорем,
ки параметраш рақам ва
функсияро қабул мекунад:
def test(num, func):
pass
Ҳоло биёед функсияи func эҷод кунем,
ки рақамро ба дараҷаи квадратӣ
мебарад:
def func(num):
return num ** 2
Ҳоло ба test баргардед ва дар
бадани он рамзеро илова кунед, то функсияи callback-и дар
параметр интиқолдодашуда низ параметраш рақамро
қабул кунад. Дар натиҷа, маълум мешавад, ки
натиҷаи 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 'номи корбар ' + name
get_Info('john', func)