পাইথন প্যাকেজ কী?
প্যাকেজ হলো মডিউল গুলোকে হায়ারার্কিক্যালি অর্গানাইজ করার উপায়। একটি ডিরেক্টরির ভিতরে __init__.py ফাইল থাকলে পাইথন সেটিকে প্যাকেজ হিসেবে ধরে।
প্যাকেজ তৈরি - ধাপে ধাপে
১. ডিরেক্টরি স্ট্রাকচার
university/ ← প্যাকেজ রুট
├── __init__.py ← খালি বা কোড থাকতে পারে
├── student.py ← মডিউল
└── faculty.py ← মডিউল
২. মডিউল কোড
# student.py
class Student:
def __init__(self, student):
self.name = student['name']
self.gender = student['gender']
self.year = student['year']
def get_student_details(self):
return f"Name: {self.name}\nGender: {self.gender}\nYear: {self.year}"
# faculty.py
class Faculty:
def __init__(self, faculty):
self.name = faculty['name']
self.subject = faculty['subject']
def get_faculty_details(self):
return f"Name: {self.name}\nSubject: {self.subject}"
৩. প্যাকেজ ব্যবহার (testing.py)
# testing.py (প্যাকেজ ডিরেক্টরির ভিতরে বা বাইরে)
from student import Student
from faculty import Faculty
student_dict = {'name': 'John', 'gender': 'Male', 'year': '3'}
faculty_dict = {'name': 'Emma', 'subject': 'Programming'}
student = Student(student_dict)
faculty = Faculty(faculty_dict)
print(student.get_student_details())
print()
print(faculty.get_faculty_details())
সাব-প্যাকেজ (নেস্টেড প্যাকেজ)
university/
├── __init__.py
├── student/ ← সাব-প্যাকেজ
│ ├── __init__.py
│ └── main.py
└── testing.py
সাব-প্যাকেজ থেকে ইমপোর্ট
# testing.py
from student.main import Student # ডট নোটেশন
student_dict = {'name': 'John', 'gender': 'Male', 'year': '3'}
student = Student(student_dict)
print(student.get_student_details())
__init__.py এর ভূমিকা
- পাইথন ৩.৩+ তে অপশনাল (নেমস্পেস প্যাকেজ)
- প্যাকেজ লেভেল ইনিশিয়ালাইজেশন কোড রাখতে পারেন
__all__দিয়ে পাবলিক API কন্ট্রোল করুন
উপসংহার
- প্যাকেজ =
__init__.pyসহ ডিরেক্টরি - ডট (.) নোটেশন দিয়ে নেস্টেড অ্যাকসেস
- বড় প্রজেক্টে কোড অর্গানাইজেশনের জন্য অপরিহার্য