Inheritance in python In Hindi
इनहेरिटेंस फीचर्स ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) में एक फंडामेंटल प्रोग्रामिंग कांसेप्ट है. जहाँ आप पाइथन प्रोग्राम में एक रुट मौजूदा क्लास (जिसे सुपरक्लास या बेस पैरेंट क्लास माना जाता है) के आधार पर एक नई सब क्लास (जिसे सबक्लास या मैन क्लास से बनी एक व्युत्पन्न क्लास माना जाता है) को रुट क्लास के आधार पर क्रिएट किया जाता है। जहा बनाई गई सबक्लास मैन सुपरक्लास या रुट क्लास के फीचर्स और मेथड्स प्रॉपर्टीज को आटोमेटिक इनहेरिट करता है, जिससे आप अपने मौजूदा प्रोग्राम कोड को एफ्फिसेंटली कभी भी रीयूज़ कर सकते हैं।

So let’s understand the inheritance properties in Python programming.
The basic syntax of inheritance in Python.
आप पायथन प्रोग्रामिंग में, निचे दिए गए इनहेरिटेंस क्लास सिंटैक्स को फॉलो करके इनहेरिटेंस मेथड को डिफाइन कर सकते हैं।
class Base/rootClass:
# add Base class parameter and attributes
pass
class DerivedClass(Base/root Class):
# it follow attributes of base/derived class
pass
बेस क्लास एक सुपरक्लास या मैन बेस क्लास है. जो अपनी रुट क्लास ऐट्रिब्यूट्स और मेथड्स के साथ इन्हेरिट क्लास के लिए बेस प्रोवाइड करती है।
व्युत्पन्नक्लास या सबक्लास या व्युत्पन्न क्लास मैन रुट क्लास के आधार पर क्रिएट की जाती है. जो मैन बेसक्लास से सभी प्रॉपर्टीज एंड ऐट्रिब्यूट्स को सबक्लास में इनहेरिट करता है।
Inheritance Program Example in Python.
तो चलिए पाइथन प्रोग्राम में pcourse बेस क्लास के आधार पर pcourse जावा और पाइथन इन्हेरिट सबक्लास/व्युत्पन्न क्लास क्रिएट करे.
class pcourse: # create pcourse base/root/main class
def __init__(info, name): # define 2 parameter
info.name = name
def select(info):
raise NotImplementedError(“raise error for abstract calss”)
class java(pcourse): # java derived/sub class created
def select(info):
return f”{info.name} you select”
class python(pcourse): # python derived/sub class created
def select(info):
return f”{info.name} you select”
# here Creating instances of derived classes
java = java(“java”)
python = python(“python”)
# call derived class element/parameter
print(java.select()) # result – java you select
print(python.select()) # result – python you select
ऊपर दिए गए इन्हेरिट क्लास उदाहरण में.
ऊपर क्लास में pcourse एक बेस/मैन क्लास है. जिसमें pcourse नाम एट्रिब्यूट को स्टार्ट करने के लिए __init__ मेथड और एक सेलेक्ट मेथड (अब्सट्रैक मेथड) है. जिसे व्युत्पन्न क्लासेज में ओवरराइड किया गया है।
pcourse बेस क्लास में जावा और पाइथन pcourse सुपरक्लास के सबक्लास हैं। ये pcourse क्लास से नाम एट्रिब्यूट और सेलेक्ट मेथड प्रॉपर्टीज को इनहेरिट करते हैं, लेकिन सेलेक्ट मेथड का अपना क्लास एक्सेक्यूशन मेथड हैं.
Python Method Resolution Order (MRO).
पायथन प्रोग्रामिंग में इनहेरिटेंस मेथड रिज़ॉल्यूशन ऑर्डर (MRO) मेथड को फॉलो करता है, जो यह तय करता है कि पाइथन बेस क्लास में मल्टीपल इनहेरिटेंस की प्रॉपर्टीज में किस आर्डर में इनहेरिट किया जाना है। आप पाइथन प्रोग्राम में __mro__ ऐट्रिब्यूट्स या mro() मेथड का उपयोग करके किसी क्लास के MRO ऑब्जेक्ट एलिमेंट को एक्सेस कर सकते हैं.
print(java.__mro__)
print(python.mro())
Advantages of Python inheritance.
Code Reusability – पाइथन इनहेरिटेंस सबक्लास को सुपरक्लास से ऐट्रिब्यूट्स और मेथड को इन्हेरिट को प्रोग्राम में कोड रीयूज़ को बढ़ावा देती है।
Modularity – पाइथन प्रोग्राम में क्लास्सेस को छोटी, अधिक मैनेज यूनिट को (सुपरक्लास और सबक्लास) में डिवाइड किया जा सकता है, जिससे प्रोग्राम मॉड्यूलरिटी और प्रोग्राम मेंटेनेंस में इम्प्रूवमेंट होता है।
Polymorphism – पाइथन इनहेरिटेंस पॉलीमॉरफिस्म का फीचर्स प्रदान करती है, जहाँ विभिन्न मल्टीप्ल क्लास की ऑब्जेक्ट को एक सामान्य सुपरक्लास की ऑब्जेक्ट के रूप में डिक्लेअर किया जा सकता है, जो प्रोग्रामिंग में फ्लेक्सिबिलिटी प्रदान करता है।
Types of Python Inheritance.
Single inheritance – यह एक सिंगल सबक्लास केवल एक सुपर/बेस क्लास से ही इनहेरिटेंस फॉलो करता है।
Multiple inheritance – यह एक सबक्लास एक से अधिक सुपर/बेस क्लास से इनहेरिटेंस फॉलो करता है। जहा पायथन प्रोग्रामिंग मल्टी-इनहेरिटेंस अल्लॉव करता है।
Multilevel inheritance – यहाँ पाइथन में एक सबक्लास को दूसरे सबक्लास से व्युत्पन्न होता है, जो एक प्रॉपर पदानुक्रमित इनहेरिटेंस सीरीज को क्रिएट करता है।
About Inheritance.
पाइथन में मल्टी इनहेरिटेंस बहु में, यदि दो सुपर/मैन क्लास में एक नाम से मेथड है, तो सुपर/मैन क्लास की मेथड जो MRO आर्डर में सबसे टॉप में है, उसे कॉल किया जाता है। यदि प्रोग्राम एरर को सावधानी से नहीं मैनेज किया जाता है, तो यह प्रोग्राम एक्सेक्यूशन अस्पष्टता का कारण हो सकता है।
पाइथन प्रोग्राम में कभी-कभी बेहतर फ्लेक्सिबिलिटी और कोड स्ट्रक्चर फॉलो करने के लिए इनहेरिटेंस पर स्ट्रक्चर (जहाँ कोइ ऑब्जेक्ट अन्य क्लास ऑब्जेक्ट से मिलकर बने होते हैं) का उपयोग करना बेहतर या आसान हो सकता है।
पाइथन प्रोग्रामिंग में इनहेरिटेंस को समझना और अपने पायथन प्रोग्राम कोड में इसका इफेक्टिव ढंग से उपयोग करना आपको मौजूदा प्रोग्राम क्लासेज पर निर्माण करने, प्रोग्राम कोड के रीयूज़ को बढ़ावा देने और संबंधित क्लासेज के पदानुक्रम बनाने की अनुमति देता है.