Python-এ super().__init__() এর ব্যবহার
Python-এ super().__init__()
এর ব্যবহার
ভূমিকা
Python-এর অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP)-এ ইনহেরিটেন্স খুবই গুরুত্বপূর্ণ একটি বিষয়। যখন কোনো সাবক্লাস তৈরি করা হয়, তখন প্যারেন্ট ক্লাসের কনস্ট্রাক্টর থেকে প্রয়োজনীয় অ্যাট্রিবিউট ইনহেরিট করার জন্য super().__init__()
ব্যবহার করা হয়। এটি কোড রিইউজ এবং মেইনটেন করার জন্য অনেক কার্যকর।
super().__init__()
কী?
super()
হলো একটি ফাংশন যা প্যারেন্ট ক্লাসের মেথড এবং প্রপার্টি এক্সেস করতে ব্যবহৃত হয়। আর super().__init__()
প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল করে, যাতে সাবক্লাস প্যারেন্ট ক্লাসের প্রপার্টি ইনহেরিট করতে পারে।
উদাহরণ
১. super().__init__()
ছাড়া
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, breed):
self.breed = breed # প্যারেন্ট ক্লাসের __init__ কল করা হয়নি
dog = Dog("Buddy", "Golden Retriever")
print(dog.name) # AttributeError: 'Dog' object has no attribute 'name'
এখানে Animal
ক্লাসের name
অ্যাট্রিবিউট ইনহেরিট হয়নি কারণ super().__init__(name)
কল করা হয়নি।
২. super().__init__()
সহ
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name) # প্যারেন্ট ক্লাসের __init__ কল করা হয়েছে
self.breed = breed
dog = Dog("Buddy", "Golden Retriever")
print(dog.name) # আউটপুট: Buddy
এখানে super().__init__(name)
ব্যবহারের ফলে name
অ্যাট্রিবিউট সঠিকভাবে ইনহেরিট হয়েছে।
কেন super().__init__()
ব্যবহার করবেন?
- প্যারেন্ট ক্লাসের অ্যাট্রিবিউট ও মেথড সহজে ইনহেরিট করা যায়।
- কোড পুনঃব্যবহারযোগ্য (Reusability) হয়।
- কোড সহজে মেইনটেন ও আপডেট করা যায়।
উপসংহার
Python-এ super().__init__()
ব্যবহার করে প্যারেন্ট ক্লাসের কনস্ট্রাক্টর সহজে কল করা যায়, যা ইনহেরিটেন্স এবং কোড অপ্টিমাইজেশনে গুরুত্বপূর্ণ ভূমিকা রাখে। তাই অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ এটি সঠিকভাবে ব্যবহার করা খুবই গুরুত্বপূর্ণ।