Python OOPs: क्लास, ऑब्जेक्ट, इनहेरिटेंस और कंस्ट्रक्टर उदाहरण के साथ

OOPs में Python

OOPs में Python यह एक प्रोग्रामिंग दृष्टिकोण है जो अन्य सामान्य प्रोग्रामिंग भाषाओं की तरह ही ऑब्जेक्ट्स और क्लासेस का उपयोग करने पर ध्यान केंद्रित करता है। ऑब्जेक्ट्स कोई भी वास्तविक दुनिया की इकाई हो सकती है। Python डेवलपर्स को कोड पुनः प्रयोज्यता पर प्रमुख ध्यान देने के साथ OOPs दृष्टिकोण का उपयोग करके एप्लिकेशन विकसित करने की अनुमति देता है। इसमें क्लास और ऑब्जेक्ट बनाना बहुत आसान है Python.

क्लास क्या है?

एक कक्षा में Python डेटा और फ़ंक्शन का एक तार्किक समूह है। यह डेटा संरचनाएँ बनाने की स्वतंत्रता देता है जिसमें मनमाना कंटेंट होता है और इसलिए आसानी से सुलभ होता है।

उदाहरण के लिए, कोई भी बैंक कर्मचारी जो ग्राहक का विवरण ऑनलाइन प्राप्त करना चाहता है, उसे जाना होगा ग्राहक वर्गजहां इसकी सभी विशेषताएं जैसे लेनदेन विवरण, निकासी और जमा विवरण, बकाया ऋण आदि सूचीबद्ध होंगे।

कैसे परिभाषित करें Python कक्षाएं

वर्ग को परिभाषित करने के लिए आपको निम्नलिखित बिंदुओं पर विचार करना होगा

चरण 1) In Python, वर्गों को द्वारा परिभाषित किया जाता है "कक्षा" कीवर्ड

class myClass():

चरण 2) क्लास के अंदर, आप ऐसे फ़ंक्शन या विधियाँ परिभाषित कर सकते हैं जो इस क्लास का हिस्सा हैं

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • यहां हमने method1 परिभाषित किया है जो “Guru99” प्रिंट करता है।
  • हमने जो दूसरा तरीका परिभाषित किया है वह है method2 जो “Software Testing”+ SomeString प्रिंट करता है। SomeString कॉलिंग विधि द्वारा दिया गया वेरिएबल है

चरण 3) क्लास में सब कुछ इंडेंटेड होता है, जैसे कि फंक्शन, लूप, if स्टेटमेंट आदि में कोड। जो कुछ भी इंडेंटेड नहीं है, वह क्लास में नहीं है।

परिभाषित करें Python कक्षाएं

ध्यान दें: में “स्वयं” का उपयोग करने के बारे में Python

  • स्व-तर्क वस्तु को ही संदर्भित करता है। इसलिए स्व शब्द का उपयोग किया जाता है। तो इस विधि के अंदर, स्व इस वस्तु के विशिष्ट उदाहरण को संदर्भित करेगा जिस पर काम किया जा रहा है।
  • स्वयं वह नाम है जिसे परम्परागत रूप से पसंद किया जाता है Pythons उदाहरण विधियों के पहले पैरामीटर को इंगित करने के लिए Python। यह का हिस्सा है Python ऑब्जेक्ट के सदस्यों तक पहुंचने के लिए सिंटैक्स

चरण 4) क्लास का ऑब्जेक्ट बनाने के लिए

c = myClass()

चरण 5) किसी क्लास में विधि को कॉल करने के लिए

c.method1()
    c.method2(" Testing is fun")
  • ध्यान दें कि जब हम मेथड1 या मेथड2 को कॉल करते हैं, तो हमें सेल्फ-कीवर्ड देने की ज़रूरत नहीं होती। यह हमारे लिए स्वचालित रूप से हैंडल हो जाता है Python रनटाइम।
  • Python जब आप किसी इंस्टेंस पर इंस्टेंस विधि को कॉल करेंगे तो रनटाइम "स्वयं" मान पास करेगा, चाहे आप इसे जानबूझकर प्रदान करें या नहीं
  • आपको बस गैर-आत्म तर्कों की परवाह करनी है

चरण 6) यहाँ पूरा कोड है

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

उत्तराधिकार कैसे काम करता है

इनहेरिटेंस एक ऐसी सुविधा है जिसका उपयोग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में किया जाता है; इसका मतलब है कि किसी मौजूदा क्लास में कम या बिना किसी संशोधन के एक नया क्लास परिभाषित करना। नए क्लास को कहा जाता है व्युत्पन्न वर्ग और जिससे यह विरासत में मिलता है उसे कहा जाता है आधार. Python विरासत का समर्थन करता है; यह भी समर्थन करता है एकाधिक विरासतएक वर्ग किसी अन्य वर्ग से विशेषताओं और व्यवहार विधियों को विरासत में प्राप्त कर सकता है जिसे उपवर्ग या उत्तराधिकारी वर्ग कहा जाता है।

परिभाषित करें Python कक्षाएं

Python वंशानुक्रम वाक्यविन्यास

class DerivedClass(BaseClass):
    body_of_derived_class

चरण 1) निम्नलिखित कोड चलाएँ

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

ध्यान दें कि childClass में, method1 परिभाषित नहीं है, लेकिन यह पैरेंट myClass से व्युत्पन्न है। आउटपुट “Guru99” है।

चरण 2) पंक्ति # 8 और 10 की टिप्पणी हटाएं। कोड चलाएं

अब, childClass में विधि 1 को परिभाषित किया गया है और आउटपुट “childClass Method1” सही ढंग से दिखाया गया है।

चरण 3) लाइन #9 पर टिप्पणी हटाएं। कोड चलाएं

आप सिंटैक्स का उपयोग करके पैरेंट क्लास की विधि को कॉल कर सकते हैं

ParentClassName.MethodName(self)

हमारे मामले में, हम myClass.method1(self) को कॉल करते हैं और Guru99 अपेक्षा के अनुसार प्रिंट होता है

चरण 4) लाइन #19 की टिप्पणी हटाएँ। कोड चलाएँ।

चाइल्ड क्लास की विधि 2 को कॉल किया जाता है और "childClass method2" को अपेक्षानुसार प्रिंट किया जाता है।

Python कंस्ट्रक्टर्स

कंस्ट्रक्टर एक क्लास फ़ंक्शन है जो किसी ऑब्जेक्ट को पूर्वनिर्धारित मानों पर इंस्टैंसिएट करता है।

यह डबल अंडरस्कोर (_) से शुरू होता है। यह __init__() विधि है

नीचे दिए गए उदाहरण में हम कन्स्ट्रक्टर का उपयोग करके उपयोगकर्ता का नाम ले रहे हैं।

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

आउटपुट होगा:

गुरु99 में आपका स्वागत है, एलेक्स!

Python 2 उदाहरण

उपरोक्त कोड हैं Python 3 उदाहरण, यदि आप भागना चाहते हैं Python 2 कृपया निम्नलिखित कोड पर विचार करें।

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

हमारे अगले ट्यूटोरियल के बारे में जानें बहुरूपता Python

सारांश

"क्लास" फ़ंक्शन और डेटा का तार्किक समूहन है। Python यह क्लास ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की सभी मानक सुविधाएं प्रदान करता है।

  • वर्ग विरासत तंत्र
  • एक व्युत्पन्न वर्ग जो अपने आधार वर्ग की किसी भी विधि को ओवरराइड करता है
  • एक विधि समान नाम वाले आधार वर्ग की विधि को कॉल कर सकती है
  • Python कक्षाएं कीवर्ड द्वारा परिभाषित की जाती हैं "कक्षा" खुद
  • क्लास के अंदर, आप ऐसे फ़ंक्शन या विधियाँ परिभाषित कर सकते हैं जो क्लास का हिस्सा हैं
  • क्लास में सब कुछ इंडेंटेड होता है, जैसे कि फंक्शन, लूप, if स्टेटमेंट आदि में कोड।
  • स्वयं का तर्क Python वस्तु को ही संदर्भित करता है। स्व नाम परंपरा के अनुसार पसंद किया जाने वाला नाम है Pythons उदाहरण विधियों के पहले पैरामीटर को इंगित करने के लिए Python
  • Python जब आप किसी इंस्टेंस पर इंस्टेंस विधि को कॉल करते हैं, तो रनटाइम स्वचालित रूप से "स्वयं" मान पास कर देगा, चाहे आप इसे जानबूझकर प्रदान करें या नहीं
  • In Pythonएक वर्ग किसी अन्य वर्ग से विशेषताओं और व्यवहार विधियों को विरासत में प्राप्त कर सकता है जिसे उपवर्ग या उत्तराधिकारी वर्ग कहा जाता है।