আজ আমরা পাইথনের বিভিন্ন ফাংশন নিয়ে আলোচনা করব। যে কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য একটি অপরিহার্য অংশ হচ্ছে ফাংশন। সাধারণত পাইথনে ৩ ধরনের ফাংশন আছেঃ
১. বিল্ট-ইন-ফাংশন
২. ইউজার ডিফাইন ফাংশন
৩. Anonymous ফাংশন
বিল্ট-ইন-ফাংশনঃ
বিল্ট-ইন-ফাংশন হচ্ছে পাইথনের নিজস্ব তৈরি করা ফাংশন । যেমনঃ print(), sum(), dict(), help(), min() ইত্যাদি ফাংশন গুলো হচ্ছে পাইথনের নিজস্ব তৈরি করে দেয়া ফাংশন।
# Built in function
total = sum((10, 20, 30))
print(total)
ইউজার ডিফাইন ফাংশন:
ইউজার ডিফাইন ফাংশন হচ্ছে প্রোগ্রামারের নিজস্ব ডিফাইন করা ফাংশন।
ফাংশন ডিফাইন করার জন্য প্রথমে আমাদের কে def keyword লিখতে হবে তারপরে আমাদেরকে ফাংশনের নাম দিতে হবে।
# User define function
def do_sum(a, b):
return a + b
print(do_sum(10, 15)) # output: 25
Anonymous ফাংশন
Anonymous ফাংশন কে আমরা ল্যম্বডা ফাংশন ও বলা হয়। Anonymous ফাংশন বলার কারন হচ্ছে এই ফাংশনের কোন নাম থাকবে না, এমন কি এই ফাংশন কে ডিফাইন করার ক্ষেত্রে আমাদের কে def keyword ও ব্যবহার করার দরকার পড়ে না। কিন্তু Anonymous ফাংশনকে ডিফাইন করার জন্য lambda keyword ব্যবহার করতে হয়।
# Anonymous function
square = lambda x: x*x
print(square(10))
Functions VS Methods
ফাংশন এবং মেথড হচ্ছে বলতে গেলে একই জিনিস। ক্লাসের মধ্যে ডিফাইন করা ফাংশন কে সাধারনত আমরা মেথড বলে থাকি। মেথড কে অ্যাক্সেস করার জন্য আমাদের কে ক্লাস অবজেক্ট বা instance দিয়ে অ্যাক্সেস করতে হবে। কিন্তু ফাংশন কে অ্যাক্সেস করার ক্ষেত্রে আমাদেরকে এই সকল কিছুর দরকার হয় না।
সুতরাং আমরা বলতে পাড়ি যে, সকল মেথডই হচ্ছে ফাংশন, কিন্তু সকল ফাংশনই মেথড নয়।
Parameters vs Arguments
একটি ফাংশন বা মেথড ডিফাইন করার সময় আমরা সাধারণত Parameters ব্যবহার করে থাকি। আর যখন ওই মেথড বা ফাংশনকে কল করার সময় আমাদের কে যে যে ডাটা দিয়ে কল করতে হয় তাকে সাধারণত arguments বলা হয়ে থাকে।
# parameters and arguments
def do_half(num1):
return num1/2
half = do_half(10)
print(half) # output: 5.0
উপরের কোডের মধ্যে দেখা যাচ্ছে যে, আমরা do_half(num1) নামের একটি ফাংশন ডিফাইন করেছি। এই ফাংশনের মধ্যে আমরা num1 নামের Parameters ব্যবহার করেছি। সুতরাং বলতে পাড়ি যে num1 হচ্ছে এই ক্ষেত্রে Parameter। এবং এই ফাংশনকে কল করার সময় আমরা do_half(10) যে ভ্যালু দিয়ে কল করেছি সেই টা হচ্ছে এই ফাংশনের Arguments
উপরে ব্যবহারিত সকল কোড গুলো একসাথে দেখতে পাওয়া যাবে এই লিঙ্কে।
আজ তাহলে এই পর্যন্ত………