পাইথনে কলব্যাক ফাংশন
পাইথনে একটি ফাংশনের প্যারামিটার হিসেবে অন্য ফাংশন পাঠানোর সুযোগ রয়েছে। এই ক্ষেত্রে ফাংশনগুলি ভেরিয়েবলের মতো করে (বন্ধনী ছাড়া) পাঠানো হয় এবং এগুলিকে কলব্যাক বলা হয়। এই ধরনের কলব্যাক ফাংশনগুলি মূল ফাংশনের বডিতে এক্সিকিউট হবে।
ধরুন আমাদের কাছে একটি 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 'user name is ' + name
get_Info('john', func)