पायथॉन इन्हेरिटेंस
- पिछला पृष्ठ Python क्लास/ऑब्जैक्ट
- अगला पृष्ठ पायथॉन इटरेशन
पायथॉन इन्हेरिटेंस
विरासत करने से हम एक क्लास के सभी विधियों और गुणों को विरासत करने वाली क्लास को परिभाषित कर सकते हैं।
पैरेंटविरासत प्राप्त करने वाली क्लास है, इसे भी बेस क्लास कहते हैं।
डेरीवेटिवएक अन्य क्लास से विरासत प्राप्त करने वाली क्लास है, इसे भी डेरीवेटिव क्लास कहते हैं।
पैरेंट क्लास बनाएं
कोई भी क्लास पैरेंट क्लास हो सकती है, इसलिए इसका वाक्यविन्यास अन्य किसी क्लास के समान है:
इंस्टांस
एक नाम 'Person' वाला क्लास बनाएं जिसमें 'firstname' और 'lastname' गुण और 'printname' विधि हों:
class Person: def __init__(self, fname, lname): self.firstname = fname self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) # Person का उपयोग करके ऑब्जैक्ट बनाएं, फिर printname विधि का उपयोग करें: x = Student("Elon", "Musk")
x = Person("Bill", "Gates")
सबक्लास बनाएं
इंस्टांस
अन्य क्लास से विधि का विरासत करने वाली क्लास का निर्माण करने के लिए, सबक्सक्लास का निर्माण करते समय पितृतत्व क्लास को पारामीटर के रूप में भेजें:
class Student(Person): फ़ंक्शन को सबक्सक्लास (नहीं __init__()) में जोड़ें
जब आप __init__() फ़ंक्शन जोड़ते हैं, तो सबक्सक्लास पितृतत्व के __init__() फ़ंक्शन का विरासत नहीं करेगी。एक Student नाम की क्लास बनाएं, जो Person की क्लास से गुण और विधि का विरासत करेगी: फ़ंक्शन को सबक्सक्लास (नहीं __init__()) में जोड़ें
यदि आपको इस क्लास में कोई अन्य गुण या विधि जोड़ना नहीं है, तो
कीवार्ड.
इंस्टांस
अब, Student की क्लास को Person की क्लास के बराबर के गुण और विधि हैं。
Student की क्लास का उपयोग करके एक ऑब्जैक्ट बनाएं, फिर printname विधि का उपयोग करें: x = Student("Elon", "Musk")
x.printname()
__init__() फ़ंक्शन जोड़ें
अब, हमने एक सबक्सक्लास बनाया है, जो पितृतत्व के गुण और विधि का विरासत करता है。 जोड़ना चाहते हैं
हम इसे फ़ंक्शन को सबक्सक्लास (नहीं __init__()) में जोड़ें
pass
जब आप __init__() फ़ंक्शन जोड़ते हैं, तो सबक्सक्लास पितृतत्व के __init__() फ़ंक्शन का विरासत नहीं करेगी。कीवार्ड).
इंस्टांस
क्लास का उपयोग करके नए ऑब्जैक्ट का निर्माण करने के बाद, __init__() फ़ंक्शन स्वचालित रूप से बुलाया जाएगा。
class Student(Person): def __init__(self, fname, lname): Student को __init__() फ़ंक्शन जोड़ें:
# गुण जोड़ें
जब आप __init__() फ़ंक्शन जोड़ते हैं, तो सबक्सक्लास पितृतत्व के __init__() फ़ंक्शन का विरासत नहीं करेगी。टिप्पणी:
उपसंहार __init__() फ़ंक्शन को उसके पितृतत्व के __init__() फ़ंक्शन के विरासत को ओवरराइड करता है。
इंस्टांस
class Student(Person): def __init__(self, fname, lname): यदि आप पितृतत्व के __init__() फ़ंक्शन के विरासत को बनाए रखना चाहते हैं, तो पितृतत्व के __init__() फ़ंक्शन को बुलाएं:
Person.__init__(self, fname, lname)
अब, हमने सफलता से __init__() फ़ंक्शन जोड़ दिया है और पितृतत्व के विरासत को बनाए रखा है, अब हम __init__() फ़ंक्शन में कार्यों को जोड़ने के लिए तैयार हैं。
super() फ़ंक्शन का उपयोग करके super()
Python में एक और
इंस्टांस
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
फ़ंक्शन का उपयोग करके, यह उपयोग से सबक्सक्लास उसके पितृतत्व से सभी विधि और गुण का विरासत प्राप्त करेगी: super()
फ़ंक्शन का उपयोग करके, आपको पितृतत्व के नाम का उपयोग नहीं करना होगा, यह स्वचालित रूप से अपने पितृतत्व से विधि और गुण का विरासत प्राप्त करेगा。
गुण जोड़ें
इंस्टांस
नाम graduationyear
के गुण को Student
क्लास:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
इस उदाहरण में 2019 वर्ष एक वेरियेबल होना चाहिए और student इंस्टांस को बनाते समय Student क्लास को पास करना चाहिए।इसके लिए __init__() फ़ॉन्क्शन में एक अन्य पैरामीटर जोड़ें:
इंस्टांस
जोड़ें वर्ष
पैरामीटरों को और इंस्टांस करते समय सही वर्ष को पास करें:
class Student(Person): def __init__(self, fname, lname, वर्ष) super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
फ़ॉन्क्शन जोड़ें
इंस्टांस
नाम welcome
कोड को Student क्लास में जोड़ें:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
सूचना:अगर आप उप-क्लास में एक फ़ॉन्क्शन को जोड़ते हैं जो पैरेंट क्लास में मौजूद है, तो वह मूल फ़ॉन्क्शन को ओवरराइड कर देगा।
- पिछला पृष्ठ Python क्लास/ऑब्जैक्ट
- अगला पृष्ठ पायथॉन इटरेशन