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__() ব্যবহার করে প্যারেন্ট ক্লাসের কনস্ট্রাক্টর সহজে কল করা যায়, যা ইনহেরিটেন্স এবং কোড অপ্টিমাইজেশনে গুরুত্বপূর্ণ ভূমিকা রাখে। তাই অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ এটি সঠিকভাবে ব্যবহার করা খুবই গুরুত্বপূর্ণ।

© 2025 Kochu Programmer | আরও Python টিউটোরিয়ালের জন্য সাবস্ক্রাইব করুন!

Next Post Previous Post
No Comment
Add Comment
comment url