📚

कंप्लीट पाइथन सीरीज - OOP पार्ट टू

Jul 18, 2024

कंप्लीट पाइथन सीरीज - OOP पार्ट टू

परिचय

  • सीरीज: कंप्लीट पाइथन
  • फोकस: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) पार्ट 2
  • मुख्य विषय: इन्हेरिटेंस, पॉलीमोर्फिज्म, प्राइवेट एट्रिब्यूट्स इत्यादि
  • उपलब्धता: सभी नोट्स और स्लाइड्स डिस्क्रिप्शन में

del कीवर्ड

  • उपयोग: ऑब्जेक्ट की प्रॉपर्टीज या पूरा ऑब्जेक्ट डिलीट करने के लिए
  • सिंटैक्स: del object.property या del object
  • उदाहरण: class Student: def __init__(self, name): self.name = name s1 = Student("Shraddha") del s1
    • परिणाम: ऑब्जेक्ट डिलीट करते ही s1 को एक्सेस करने पर एरर मिलेगा

प्राइवेट एट्रिब्यूट्स

  • पब्लिक और प्राइवेट एट्रिब्यूट्स का फर्क
  • प्राइवेट एट्रिब्यूट्स: फाइल करें __attribute
  • उद्देश्य: संवेदनशील जानकारी को प्रोटेक्ट करना
  • उदाहरण: class Account: def __init__(self, account_number, password): self.__account_number = account_number self.__password = password
    • परिणाम: __account_number और __password क्लास के बाहर से एक्सेस नहीं किए जा सकते__

इनहेरिटेंस

  • उद्देश्य: एक क्लास की प्रॉपर्टीज दूसरी क्लास में यूज़ करना
  • सिंटैक्स: class DerivedClass(BaseClass):
  • उदाहरण: class Car: def start(self): print("Car started") def stop(self): print("Car stopped") class ToyotaCar(Car): pass
    • परिणाम: ToyotaCar ने Car की प्रॉपर्टीज इनहेरिट की

इनहेरिटेंस के प्रकार

  1. सिंगल इनहेरिटेंस: एक बेस क्लास और एक डेरिव क्लास
  2. मल्टीलेवल इनहेरिटेंस: एक बेस क्लास, एक इंटरमीडिएट क्लास, और एक डेरिव क्लास
  3. मल्टीपल इनहेरिटेंस: एक डेरिव क्लास जो मल्टीपल बेस क्लासेज से इनहेरिट करती है
  4. हाइब्रिड इनहेरिटेंस: मल्टीपल इनहेरिटेंस के प्रकारों का कॉम्बिनेशन

सुपर मेथड

  • उपयोग: पेरेंट क्लास का कंस्ट्रक्टर या अन्य मेथड को कॉल करने के लिए
  • उदाहरण: class Car: def __init__(self, car_type): self.car_type = car_type class ToyotaCar(Car): def __init__(self, car_type, model): super().__init__(car_type) self.model = model
    • परिणाम: ToyotaCar में पेरेंट क्लास के __init__ को कॉल किया गया

क्लास मेथड

  • उपयोग: क्लास लेवल पर परिवर्तन करना
  • सिंटैक्स: @classmethod
  • उदाहरण: class MyClass: class_variable = 0 @classmethod def increment(cls): cls.class_variable += 1
    • परिणाम: increment क्लास वैरिएबल को बढ़ाएगा

प्रॉपर्टी डेकोरेटर

  • उद्देश्य: एक मेथड को प्रॉपर्टी में बदलना
  • सिंटैक्स: @property
  • उदाहरण: class Student: def __init__(self, marks): self._marks = marks @property def percentage(self): return (self._marks / 100) * 100
    • परिणाम: percentage प्रॉपर्टी की तरह यूज हो सकती है

पॉलीमोर्फिज्म और ऑपरेटर ओवरलोडिंग

  • उद्देश्य: एक ही ऑपरेटर या मेथड का विभिन्न प्रकारों से उपयोग
  • उदाहरण:
    • प्लस ऑपरेटर:
      • स्ट्रिंग्स के लिए: कॉनकैटिनेशन
      • इंटीजर के लिए: ऐडिशन
    print(1 + 2) # 3 print("a" + "b") # ab

कस्टम ऑपरेटर ओवरलोडिंग

  • सिंटैक्स: __add__, __sub__ आदि मेथड्स की डिफ़िनिशन
  • उदाहरण: class Complex: def __init__(self, real, imag): self.real = real self.imag = imag def __add__(self, other): return Complex(self.real + other.real, self.imag + other.imag) c1 = Complex(1, 2) c2 = Complex(2, 3) c3 = c1 + c2
    • परिणाम: c3 एक नया Complex नंबर होगा

निष्कर्ष

  • हमने OOP के मुख्य चार पिलर्स को कवर किया: एब्स्ट्रैक्शन, इनकैप्सुलेशन, इनहेरिटेंस, और पॉलीमोर्फिज्म
  • पाइथन में OOP का प्रयोग बड़े प्रोजेक्ट्स में महत्वपूर्ण है
  • इंटरव्यूज़ के लिए ये सभी कांसेप्ट्स खासतौर पर उपयोगी
  • प्रैक्टिस क्वेश्चंस और कुछ क्लासेस को डिफ़ाइन किया: सर्कल, एंप्लॉई, ऑर्डर

अगले स्टेप्स

  • सभी नोट्स और स्लाइड्स डाउनलोड करें
  • अगले लेक्चर में प्रोजेक्ट ओरिएंटेड इम्प्लीमेंटेशन पर फ़ोकस करेंगे
  • लगातार प्रैक्टिस करते रहें