Python Academy · पाठ

एकल इनहेरिटेंस

ऐसी चाइल्ड क्लास बनाएँ जो पैरेंट से एट्रिब्यूट और विधियाँ विरासत में लें।

पाठ 1, कुल 4 में से14 चरण

एकल इनहेरिटेंस, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

परिचय

इनहेरिटेंस से चाइल्ड क्लास बिना कोड दोहराए पैरेंट क्लास के व्यवहार का पुनः उपयोग और विस्तार कर सकती है।

चाइल्ड क्लास परिभाषित करना

क्लास Dog(Animal): Animal से सब कुछ इनहेरिट करती है। चाइल्ड क्लास नए मेथड जोड़ सकती है या मौजूदा मेथड को ओवरराइड कर सकती है।
class Animal:
    def __init__(self, name): self.name = name
    def speak(self): return '...'
class Dog(Animal):
    def speak(self): return 'Woof'
d = Dog('Rex')
print(d.name, d.speak())

super().__init__ को कॉल करना

super().__init__(args) पैरेंट के __init__ को कॉल करता है। जब पैरेंट में सेटअप लॉजिक हो, तो चाइल्ड में इसे हमेशा कॉल करें।
class Animal:
    def __init__(self, name): self.name = name
class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed
d = Dog('Rex', 'Labrador')
print(d.name, d.breed)

मेथड इनहेरिट करना

चाइल्ड को पैरेंट के सभी मेथड इनहेरिट होते हैं। यदि आप उन्हें ओवरराइड नहीं करते, तो वे बिना बदलाव के काम करते हैं।
class Vehicle:
    def start(self): return 'starting'
class Car(Vehicle):
    pass
print(Car().start())

मेथड ओवरराइड करना

पैरेंट के संस्करण को बदलने के लिए चाइल्ड में उसी मेथड नाम को परिभाषित करें। चाइल्ड वाला संस्करण कॉल होगा।
class Shape:
    def area(self): return 0
class Square(Shape):
    def __init__(self, s): self.s = s
    def area(self): return self.s**2
print(Square(4).area())

पैरेंट के व्यवहार का विस्तार

ओवरराइड के अंदर super().method() कॉल करके पहले पैरेंट वाला संस्करण चलाएँ, फिर अतिरिक्त कार्य जोड़ें।
class Animal:
    def describe(self): return 'I am an animal'
class Dog(Animal):
    def describe(self): return super().describe() + ' and a dog'
print(Dog().describe())

isinstance() और issubclass()

isinstance(obj, Parent) चाइल्ड इंस्टेंस के लिए भी True लौटाता है। issubclass(Child, Parent) क्लास पदानुक्रम की जाँच करता है।
class Animal: pass
class Dog(Animal): pass
d = Dog()
print(isinstance(d, Animal))
print(issubclass(Dog, Animal))

चाइल्ड नए मेथड जोड़ती है

चाइल्ड ऐसे नए मेथड परिभाषित कर सकती है जो पैरेंट में मौजूद नहीं हैं।
class Animal:
    def __init__(self, name): self.name = name
class Dog(Animal):
    def fetch(self): return f'{self.name} fetches!'
print(Dog('Rex').fetch())

प्रोटेक्टेड एट्रिब्यूट

_name परंपरा यह संकेत देती है कि इसे क्लास के बाहर से एक्सेस न करें। सबक्लास इनका उपयोग कर सकती हैं।
class Animal:
    def __init__(self, name): self._name = name
    def name(self): return self._name
class Dog(Animal):
    def bark(self): return f'{self._name} barks'
print(Dog('Rex').bark())

एब्स्ट्रैक्ट बेस क्लास

from abc import ABC, abstractmethod सबक्लास को मेथड लागू करने के लिए बाध्य करता है।
from abc import ABC, abstractmethod
class Shape(ABC):
    @abstractmethod
    def area(self): pass
class Circle(Shape):
    def __init__(self, r): self.r = r
    def area(self):
        import math
        return math.pi * self.r**2
print(Circle(3).area())

__bases__ और __mro__

Dog.__bases__ सीधे पैरेंट दिखाता है। Dog.__mro__ पूरा मेथड रिज़ॉल्यूशन क्रम दिखाता है।
class A: pass
class B(A): pass
class C(B): pass
print(C.__mro__)

त्वरित जाँच

चाइल्ड क्लास में super().__init__() क्या करता है?

पुनरावलोकन

इनहेरिटेंस: क्लास Child(Parent)। super() पैरेंट को एक्सेस करता है। व्यवहार बदलने के लिए मेथड ओवरराइड करें। isinstance() पदानुक्रम की जाँच करता है। ABC एब्स्ट्रैक्ट कॉन्ट्रैक्ट लागू करता है।

आगे बढ़ते रहें

बहुत अच्छी प्रगति! अगले कॉन्सेप्ट में महारत हासिल करने के लिए आगे बढ़ते रहें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “एकल इनहेरिटेंस” पाठ निःशुल्क है?

हाँ—“एकल इनहेरिटेंस” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“एकल इनहेरिटेंस” में मैं क्या सीखूँगा?

ऐसी चाइल्ड क्लास बनाएँ जो पैरेंट से एट्रिब्यूट और विधियाँ विरासत में लें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“एकल इनहेरिटेंस” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. एकल इनहेरिटेंस
  2. विधि ओवरराइडिंग और super()
  3. मल्टीपल इनहेरिटेंस और MRO
  4. पॉलीमॉर्फ़िज़्म और डक टाइपिंग
← Python Academy पर वापस जाएँ