পাইথনে একটি ফাংশনের মধ্যে অন্য একটি ফাংশন কল করা অত্যন্ত সহজ এবং এটি কোডকে পুনঃব্যবহারযোগ্য (reusable) করতে সাহায্য করে। এটি মূলত দুইভাবে করা যায়:
১. বাইরে ডিফাইন করা কোনো ফাংশনকে অন্য ফাংশনের ভেতর থেকে কল করা (সবচেয়ে সাধারণ পদ্ধতি)।
২. একটি ফাংশনের ভেতরেই আরেকটি ফাংশন তৈরি করে (Nested Function) সেটি কল করা।
নিচে দুটি পদ্ধতিরই সহজ উদাহরণ দেওয়া হলো:
পদ্ধতি ১: সাধারণ ফাংশন কল (Calling an external function)
এই পদ্ধতিতে প্রথমে একটি সাধারণ ফাংশন তৈরি করা হয়, এবং পরে অন্য একটি ফাংশন থেকে সেটিকে নাম ধরে কল করা হয়।
python
# প্রথম ফাংশন: যা শুধু বর্গ (Square) হিসাব করে
def square(number):
return number * number
# দ্বিতীয় ফাংশন: যা বর্গের সাথে আরেকটি সংখ্যা যোগ করে
def square_and_add(num1, num2):
# এখানে ভেতরের ফাংশনটি (square) কল করা হচ্ছে
result = square(num1)
return result + num2
# ফাংশন টেস্ট করা
final_output = square_and_add(5, 10) # (৫ এর বর্গ = ২৫) + ১০ = ৩৫
print(final_output) # আউটপুট দেখাবে: 35
Use code with caution.
পদ্ধতি ২: নেস্টেড ফাংশন (Nested/Inner Function)
যখন একটি ফাংশন কেবল অন্য একটি নির্দিষ্ট ফাংশনের কাজের সহায়তার জন্য প্রয়োজন হয়, তখন তাকে মূল ফাংশনের ভেতরেই ডিফাইন বা তৈরি করা যায়। একে Nested Function বা Inner Function বলে।
python
# মূল বা আউটার (Outer) ফাংশন
def greet_user(name):
# ভেতরের বা ইনার (Inner) ফাংশন
def process_name():
return name.strip().capitalize() # নামের স্পেস বাদ দিয়ে প্রথম অক্ষর বড় করবে
# ভেতরের ফাংশনটি আউটার ফাংশনের ভেতর থেকেই কল করতে হবে
cleaned_name = process_name()
print(f"হ্যালো, {cleaned_name}! পাইথনে স্বাগতম।")
# ফাংশন টেস্ট করা
greet_user(" rahim ") # আউটপুট দেখাবে: হ্যালো, Rahim! পাইথনে স্বাগতম।
Use code with caution.
নোট: পদ্ধতি ২-এর ক্ষেত্রে process_name() ফাংশনটিকে আপনি greet_user() ফাংশনের বাইরে থেকে সরাসরি কল করতে পারবেন না। কারণ এর স্কোপ (Scope) বা সীমানা শুধুমাত্র ওই মূল ফাংশনটির ভেতরেই।