মডিউল হলো পাইথনের একটি ফিচার যা আপনাকে আপনার কোডকে একাধিক ফাইলে ভাগ করার অনুমতি দেয়। পাইথন মডিউল হলো ".py" এক্সটেনশন দিয়ে শেষ হওয়া ফাইলগুলো।
এই গাইডে, আমরা উদাহরণ দিয়ে আপনাকে শিখাব কীভাবে একটি পাইথন মডিউল তৈরি করতে হয়।
পাইথন মডিউল: একটি প্রাইমার
একটি মডিউল হলো পাইথন প্রোগ্রাম ফাইলের অন্য নাম। এর মানে পাইথন প্রজেক্টে যেকোনো ফাইল যেটি .py এক্সটেনশনে শেষ হয়, সেটিকে একটি মডিউল হিসেবে বিবেচনা করা যায়। মডিউলে ফাংশন, ভেরিয়েবল এবং ক্লাস থাকতে পারে, এবং এটি নিজস্ব লাইব্রেরি ইম্পোর্টও করতে পারে।
পাইথনে মডিউলের তিনটি প্রধান টাইপ আছে:
- বিল্ট-ইন মডিউল: এগুলো পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ। এগুলো আপনার পাইথন ইনস্টলেশনের সাথে প্যাকেজড থাকে। কিছু উদাহরণ: logging এবং time।
- এক্সটার্নাল মডিউল: এগুলো আপনি pip, পাইথনের প্যাকেজ ম্যানেজমেন্ট টুল ব্যবহার করে ইনস্টল করেছেন।
- ইউজার-ডিফাইনড মডিউল: এগুলো আপনি আপনার পাইথন প্রোগ্রামে ডিফাইন করেছেন।
মডিউল লিখতে আপনার কোডের রিডেবিলিটি সংরক্ষণ করতে সাহায্য করে। যা tèchnically সম্ভব হলেও একটি প্রোগ্রামের সকল কোড এক ফাইলে লিখা, সেটি ভালো আইডিয়া নয়। হাজার হাজার লাইন কোডवाले একটি ফাইলে কোথায় এবং কীভাবে চেঞ্জ আনতে হবে সেটি জানা কঠিন।
আমরা পাইথন ইম্পোর্ট স্টেটমেন্ট নিয়ে আমাদের টিউটোরিয়াল পড়তে পরামর্শ দিই আপনি যদি ইতিমধ্যে কীভাবে এটি কাজ করে সেটি জানেন না।
পাইথন মডিউল কীভাবে লিখবেন
এই গাইডে, আমরা একটি ব্যাঙ্কের প্রোগ্রাম লিখব যেটি তাদের কাস্টমারদের ব্যালেন্স সংরক্ষণ করবে। চলুন শুরু করি।
শুরু করি, আমরা একটি ফাংশন তৈরি করব যা ইউজারকে ব্যাঙ্কের ব্যালেন্স ট্র্যাকিং সিস্টেমে স্বাগতম বলে। আমরা এই ফাংশনটি bank.py নামক একটি ফাইলে লিখব, যেটি আমাদের ব্যাঙ্ক ট্র্যাকিং সিস্টেমের কোড সংরক্ষণ করবে।
def welcome_message():
print("Welcome to Python Bank!")
যখন আমরা এই প্রোগ্রাম রান করব, কিছুই হবে না। কারণ আমরা আমাদের ফাংশনটি কল করিনি। আমাদের কোড ব্যবহার করতে, আমরা main.py নামে একটি নতুন ফাইল তৈরি করব। এটি আমাদের প্রোগ্রামের মেইন কোড সংরক্ষণ করবে:
import bank bank.welcome_message()
আমাদের কোডে, আমরা আমাদের bank.py ফাইল থেকে bank মডিউল ইম্পোর্ট করেছি। তারপর, আমরা আমাদের bank মডিউলে welcome_message() ফাংশনটি কল করেছি। আমাদের কোড রিটার্ন করে:
Welcome to Python Bank!
যদিও আমাদের print() স্টেটমেন্ট bank.py ফাইলে আছে, import কীওয়ার্ড ব্যবহার করে আমরা সেই কোডকে আমাদের মেইন প্রোগ্রামে কল করতে পারি। এটি পাইথনে একটি ডিফারেন্ট ফাইল থেকে কোড রান করার একটি বেসিক উদাহরণ, কিন্তু মডিউলের সাথে আপনি আরও অনেক কিছু করতে পারেন।
পাইথন মডিউলের সাথে ক্লাস ব্যবহার করা
ধরি আমরা একটি ক্লাস তৈরি করতে চাই যেটি আমাদের ব্যাঙ্কের একটি কাস্টমারের ডেটা সংরক্ষণ করবে। আমরা এই ক্লাসটি আমাদের bank.py ফাইলে ডিফাইন করব, যাতে এটি আমাদের মেইন প্রোগ্রাম থেকে আলাদা থাকে:
def welcome_message():
print("Welcome to Python Bank!")
class Customer:
def __init__(self, name, balance):
self.name = name
self.balance = balance
def show_customer(self):
print("Name: " + self.name)
print("Balance: $" + int(self.balance))
চলুন আমাদের main.py ফাইলে ফিরে যাই যাতে আমরা এই কোড ব্যবহার করতে পারি। আমরা নিচের কোড যোগ করব যা Customer ক্লাসের একটি ইনস্ট্যান্স তৈরি করবে। এই ইনস্ট্যান্সটি লুসি, ব্যাঙ্কের একটি নতুন কাস্টমারের নাম এবং ব্যালেন্স সংরক্ষণ করবে।
আমাদের main.py ফাইল এখন এরকম দেখাবে:
import bank
bank.welcome_message()
lucy = bank.Customer("Lucy", 75)
lucy.show_customer()
আমাদের কোড রিটার্ন করে:
Welcome to Python Bank!
Name: Lucy
Balance: $75
আমাদের কোডে, আমরা Customer ক্লাসের একটি ইনস্ট্যান্স ডিক্লেয়ার করেছি যর নাম "lucy"। লুসির অ্যাকাউন্টে নাম "Lucy" এবং ব্যালেন্স $75।
আপনি দেখতে পাচ্ছেন, আমাদের Customer ক্লাসের কোড আমাদের মেইন প্রোগ্রামে সংরক্ষিত নয়।
বদলে, এই কোড আমাদের bank.py ফাইলে আছে। "import" স্টেটমেন্ট আমাদের bank.py ফাইলের সকল কোড রিট্রিভ করতে দেয় যাতে আমরা সেগুলো আমাদের কোডে ব্যবহার করতে পারি।
অন্য ফোল্ডার থেকে মডিউল ইম্পোর্ট কীভাবে করবেন
পাইথনে, আপনি আলাদা ডিরেক্টরিতে সংরক্ষিত মডিউল ব্যবহার করতে পারেন।
আমাদের লাস্ট উদাহরণে, আমাদের "bank.py" মডিউল আমাদের "main.py" ফোল্ডারের মতো একই ফোল্ডারে ছিল।
এটি কারণ আমাদের প্রোগ্রাম ছোট এবং তাই আমাদের আলাদা মডিউল ফোল্ডারের প্রয়োজন নেই। কিন্তু, আপনি যদি একটি বড় প্রোগ্রাম লিখেন, তবে আপনি মডিউলগুলো আলাদা ফোল্ডারে সংরক্ষণ করতে চাইতে পারেন।
এটি করতে, আপনি "from" কীওয়ার্ড ব্যবহার করতে পারেন। এটি আপনাকে স্পেসিফাই করতে দেয় আপনি কোন ফোল্ডার থেকে মডিউল ইম্পোর্ট করতে চান।
ধরি আমরা আমাদের bank.py মডিউলকে bank_details নামে একটি ফোল্ডারে মুভ করি। আমরা তখন আমাদের কোডে স্পেসিফিক মডিউল ইম্পোর্ট করতে পারি আমাদের ইম্পোর্ট স্টেটমেন্ট "import bank" থেকে চেঞ্জ করে:
from bank_details import bank
এটি আমাদের bank.py ফাইল কন্টেন্ট আমাদের প্রোগ্রামে ইম্পোর্ট করতে দেবে। from bank_details আমাদের প্রোগ্রামকে বলে দেয় মডিউলটি কোথায় পাওয়া যাবে, যেটাকে প্রায়শি মডিউল নেমস্পেস বলা হয়। এই কেসে, bank_details মডিউল নেমস্পেস এবং এটি সেই ফাইল যেটি পাইথন কোড ধারণ করে যা আমরা আমাদের প্রোগ্রামে ব্যবহার করি।
উপসংহার
একটি মডিউল লিখা এবং অন্য যেকোনো পাইথন ফাইল লিখার মধ্যে কোনো পার্থক্য নেই। একটি মডিউল সিম্পলি পাইথনে একটি ফাইল। "import" স্টেটমেন্টের সাথে ব্যবহার করলে, আপনি মডিউল ব্যবহার করে আপনার কোড ভাঙতে পারেন। এটি উপকারী কারণ এর মানে আপনাকে আপনার প্রোগ্রামের সকল কোড এক ফাইলে সংরক্ষণ করতে হয় না; আপনি এটিকে একাধিক ফাইলে ভাগ করতে পারেন এবং আপনার কোডকে যথাযথভাবে ক্যাটাগরাইজ করতে পারেন।