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