Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

🐍 Python OOP चीट शीट

Python Basics: Object-Oriented Programming क्वेस्ट में आपने जो कुछ भी सीखा है उसके लिए एक त्वरित संदर्भ।


1. क्लासेस और ऑब्जेक्ट्स

क्लास परिभाषित करना

class Person:
    def __init__(self, name, age):
        self.name = name      # सार्वजनिक गुण
        self.age = age        # सार्वजनिक गुण

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

ऑब्जेक्ट बनाना

p1 = Person("John", 30)
p1.greet()   # Hello, my name is John and I am 30 years old.

2. गुण (Attributes) और विधियाँ (Methods)

  • Attributes = ऑब्जेक्ट के अंदर वाले वेरिएबल (self.attribute)
  • Methods = ऑब्जेक्ट के अंदर वाली फंक्शन (def method(self):)

पहुँचना:

print(p1.name)   # गुण
p1.greet()       # विधि

3. Inheritance

मूल Inheritance

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

    def sound(self):
        print("Some generic sound")

class Dog(Animal):
    def sound(self):
        print("Woof woof!")

dog = Dog("Rex")
dog.sound()  # Woof woof!

4. super()

Parent के Constructor को कॉल करना

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)   # Animal का __init__ कॉल करें
        self.breed = breed

5. Method Overriding

Child क्लास में Parent की विधियों को बदल सकते हैं:

class Cat(Animal):
    def sound(self):
        print("Meow!")

6. Private Attributes और Methods

__ से प्राइवेट मार्क करें

class Person:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # प्राइवेट गुण

    def __print_age(self):  # प्राइवेट विधि
        print(self.__age)

    def show_info(self):
        print(self.name)
        self.__print_age()

प्रत्यक्ष रूप से निजी सदस्यों तक पहुंचने पर त्रुटि होगी:

p = Person("Alice", 25)
p.__age         # ❌ AttributeError
p._Person__age  # ✅ काम करता है, लेकिन अनुशंसित नहीं

7. मुख्य OOP शब्दावली

शब्द अर्थ
Class ऑब्जेक्ट्स के लिए ब्लूप्रिंट।
Object किसी क्लास का एक इंस्टेंस, जिसमें अपना डेटा होता है।
Attribute ऑब्जेक्ट के अंदर वेरिएबल।
Method क्लास के अंदर फंक्शन।
Constructor विशेष विधि __init__ जो ऑब्जेक्ट बनाने पर बुलती है।
Inheritance किसी अन्य क्लास का कोड पुनः उपयोग करने की विधि।
Overriding पेरेंट क्लास की विधि को फिर से परिभाषित करना।
super() पेरेंट क्लास की विधियाँ कॉल करना।
Private __ से शुरू होने वाला, आंतरिक उपयोग के लिए।

8. त्वरित सर्वोत्तम अभ्यास

  • क्लास नामों के लिए PascalCase का उपयोग करें: MyClass
  • वर्तमान ऑब्जेक्ट के लिए self का उपयोग करें
  • विधियाँ एक ही कार्य पर केंद्रित रखें
  • आंतरिक विवरण के लिए निजी सदस्यों का उपयोग करें
  • यदि आप किसी चाइल्ड क्लास में __init__ ओवरराइड करें तो super().__init__() कॉल करें
  • संयोजन या विरासत (composition या inheritance) को समझदारी से चुनें — केवल विरासत के लिए विरासत न लें

📌 याद रखें: OOP मुख्यतः संज्ञाओं (things) और उनके व्यवहारों के बारे में सोचने का तरीका है। वास्तविक दुनिया की अवधारणाओं का मॉडल बनाएं, कोड को व्यवस्थित रखें, और जहां संभव हो पुन: उपयोग करें।