__init__.py ফাইলটি পাইথনের একটি গুরুত্বপূর্ণ অংশ, বিশেষ করে মডিউল এবং প্যাকেজ নিয়ে কাজ করার সময়। এটি প্যাকেজ এবং মডিউল ব্যবস্থাপনা সহজ এবং সংগঠিত করে তোলে।
প্যাকেজ কি?
পাইথনে অনেকগুলো মডিউলকে একসাথে গ্রুপ করে রাখার জন্য প্যাকেজ ব্যবহৃত হয়। প্যাকেজ মূলত একটি ডিরেক্টরি, যার মধ্যে অনেক মডিউল থাকে। প্রতিটি প্যাকেজের মধ্যে থাকা মডিউলগুলোকে বাইরের প্রোগ্রাম থেকে আমদানি (import) করার জন্য, সেই ডিরেক্টরির মধ্যে __init__.py ফাইল থাকা জরুরি।
__init__.py এর ভূমিকা
__init__.py ফাইলটি জানিয়ে দেয় যে একটি ডিরেক্টরি একটি প্যাকেজ হিসেবে কাজ করছে। এটি খালি থাকতে পারে অথবা এর ভেতরে কিছু কোড থাকতে পারে, যা প্যাকেজটি ইমপোর্ট করার সময় চালিত হয়।
উদাহরণ:
ধরুন, আপনার কাছে নিচের ফাইল স্ট্রাকচার আছে:
my_project/
my_package/
__init__.py
module1.py
module2.py
main.py
my_packageহলো একটি প্যাকেজ, এবং তার মধ্যেmodule1.pyএবংmodule2.pyনামে দুটি মডিউল রয়েছে।__init__.pyফাইলটি থাকার মানে হলোmy_packageএখন প্যাকেজ হিসেবে ব্যবহৃত হতে পারে।
__init__.py এর ব্যবহার
১. প্যাকেজ তৈরি করা:
যখন __init__.py ফাইল একটি ডিরেক্টরির মধ্যে থাকে, তখন পাইথন সেই ডিরেক্টরিটিকে প্যাকেজ হিসেবে বিবেচনা করে। যেমন:
my_project/
my_package/
__init__.py
module1.py
module2.py
এখন আপনি main.py ফাইলে my_package থেকে মডিউল ইমপোর্ট করতে পারেন:
# main.py
from my_package import module1, module2
২. কোড সংরক্ষণ করা:
আপনি চাইলে __init__.py ফাইলে কিছু কোড রাখতে পারেন যা প্যাকেজ ইমপোর্ট করার সময় চালিত হবে।
# __init__.py
print("my_package is being imported!")
যখন আপনি প্যাকেজটি ইমপোর্ট করবেন, এটি সেই কোড চালাবে:
# main.py
import my_package
# Output: my_package is being imported!
৩. প্যাকেজের ডিরেক্টরি গঠন:
__init__.py ফাইলটি প্যাকেজের ভেতর মডিউল এবং সাব-প্যাকেজ গঠনের জন্য ব্যবহৃত হয়। আপনি এটি ব্যবহার করে ডিরেক্টরি থেকে কোন মডিউল ইমপোর্ট হবে তা নির্ধারণ করতে পারেন।
# __init__.py
from .module1 import some_function
# Now you can do:
# from my_package import some_function
সংক্ষেপে:
__init__.pyফাইল পাইথনে একটি ডিরেক্টরিকে প্যাকেজ হিসেবে চিনতে সাহায্য করে।- এটি খালি থাকতে পারে বা প্যাকেজ ইমপোর্টের সময় নির্দিষ্ট কোড চালাতে পারে।
- প্যাকেজ ব্যবস্থাপনার ক্ষেত্রে এটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
সহজ উদাহরণ:
ধরুন আপনি একটি ক্যালকুলেটর প্যাকেজ তৈরি করেছেন যার দুটি মডিউল আছে:
calculator/
__init__.py
addition.py
subtraction.py
addition.py ফাইল:
def add(a, b):
return a + b
subtraction.py ফাইল:
def subtract(a, b):
return a - b
__init__.py ফাইল:
from .addition import add
from .subtraction import subtract
main.py ফাইল:
from calculator import add, subtract
print(add(10, 5)) # Output: 15
print(subtract(10, 5)) # Output: 5
এভাবে, __init__.py ফাইলের মাধ্যমে আপনি প্যাকেজের মডিউলগুলোকে সহজে এক্সেস করতে পারবেন।