इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले।
वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है।
वंशानुक्रम को मोटे तौर पर 5 प्रकारों में वर्गीकृत किया जाता है -
- अकेला
- एकाधिक
- पदानुक्रमित
- बहु-स्तरीय
- हाइब्रिड

जैसा कि ऊपर दिए गए चित्र में दिखाया गया है कि वंशानुक्रम वह प्रक्रिया है जिसमें हम वास्तव में मूल वर्ग की वस्तु बनाए बिना अन्य वर्गों की सुविधाओं तक पहुँचने का प्रयास करते हैं।
यहां हम एकल और पदानुक्रमित विरासतों के कार्यान्वयन के बारे में सीखेंगे।
एकल विरासत
उदाहरण
# parent class
class Student():
# constructor of parent class
def __init__(self, name, enrollnumber):
self.name = name
self.enrollnumber = enrollnumber
def display(self):
print(self.name)
print(self.enrollnumber)
# child class
class College( Student ):
def __init__(self, name, enrollnumber, admnyear, branch):
self.admnyear = admnyear
self.branch = branch
# invoking the __init__ of the parent class
Student.__init__(self, name, enrollnumber)
# creation of an object for base/derived class
obj = College('Rohit',42414802718,2018,"CSE")
obj.display() आउटपुट
Rohit 42414802718
एकाधिक विरासत
उदाहरण
# parent class
class Student():
# constructor of parent class
def __init__(self, name, enrollnumber):
self.name = name
self.enrollnumber = enrollnumber
def display(self):
print(self.name)
print(self.enrollnumber)
# child class
class College( Student ):
def __init__(self, name, enrollnumber, admnyear, branch):
self.admnyear = admnyear
self.branch = branch
# invoking the __init__ of the parent class
Student.__init__(self, name, enrollnumber)
# child class
class University( Student ):
def __init__(self, name, enrollnumber, refno, branch):
self.refno = refno
self.branch = branch
# invoking the __init__ of the parent class
Student.__init__(self, name, enrollnumber)
# creation of an object for base/derived class
obj_1 = College('Rohit',42414802718,2018,"CSE")
obj_1.display()
obj_2 = University ('Rohit',42414802718,"st2018","CSE")
obj_2.display() आउटपुट
Rohit 42414802718 Rohit 42414802718
निष्कर्ष
इस लेख में, हमने व्यापक रूप से एकल और पदानुक्रमित वंशानुक्रम में पायथन में वंशानुक्रम के बारे में सीखा।