पाठ 25 / 47
इनहेरिटेंस और ओवरराइडिंग
मौजूदा क्लास पर नई क्लास बनाएँ, और व्यवहार को अनुकूलित करें।
क्लास का विस्तार
उपवर्ग को अपने अभिभावक से सब कुछ मिलता है और वह मेथड जोड़ या ओवरराइड कर सकता है। super() अभिभावक का संस्करण कॉल करता है।
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return f"{self.name} makes a sound"
class Dog(Animal):
def speak(self): # override
base = super().speak()
return f"{base}: Woof!"
print(Dog("Rex").speak())संक्षेप में MRO
पायथन बहु-इनहेरिटेंस समर्थित करता है और मेथड को MRO (Method Resolution Order) से खोजता है — पर ज़्यादातर असल कोड में एकल-इनहेरिटेंस ही काफ़ी है।