पायथॉन इन्हेरिटेंस

पायथॉन इन्हेरिटेंस

विरासत करने से हम एक क्लास के सभी विधियों और गुणों को विरासत करने वाली क्लास को परिभाषित कर सकते हैं।

पैरेंटविरासत प्राप्त करने वाली क्लास है, इसे भी बेस क्लास कहते हैं।

डेरीवेटिवएक अन्य क्लास से विरासत प्राप्त करने वाली क्लास है, इसे भी डेरीवेटिव क्लास कहते हैं।

पैरेंट क्लास बनाएं

कोई भी क्लास पैरेंट क्लास हो सकती है, इसलिए इसका वाक्यविन्यास अन्य किसी क्लास के समान है:

इंस्टांस

एक नाम '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)

इंस्टांस चलाएं

सूचना:अगर आप उप-क्लास में एक फ़ॉन्क्शन को जोड़ते हैं जो पैरेंट क्लास में मौजूद है, तो वह मूल फ़ॉन्क्शन को ओवरराइड कर देगा।