क्लास बनाम इंस्टेंस एट्रिब्यूट्स

Python में Object-Oriented Programming परिचय

George Boorman

Curriculum Manager, DataCamp

OOP के मुख्य सिद्धांत

Encapsulation:

  • डेटा और मेथड्स को साथ बाँधना

Inheritance:

  • मौजूदा कोड की कार्यक्षमता बढ़ाना

Polymorphism:

  • एकीकृत इंटरफ़ेस बनाना
Python में Object-Oriented Programming परिचय

इंस्टेंस-लेवल एट्रिब्यूट्स

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

emp1 = Employee("Teo Mille", 50000) 
emp2 = Employee("Marta Popov", 65000)
  • name और salary के मान हर ऑब्जेक्ट के लिए अलग होते हैं
  • self किसी ऑब्जेक्ट को असाइन करता है
Python में Object-Oriented Programming परिचय

क्लास-लेवल एट्रिब्यूट्स

  • डेटा जो किसी क्लास की सभी इंस्टेंसेज़ में साझा होता है

 

  • क्लास एट्रिब्यूट्स को class की बॉडी में डिफाइन करें

 

  • क्लास के भीतर "ग्लोबल वैरिएबल"
Python में Object-Oriented Programming परिचय

क्लास-लेवल एट्रिब्यूट्स लागू करना

class Employee:
    # Define a class attribute
    # No self. syntax
    MIN_SALARY = 30000 

def __init__(self, name, salary): self.name = name # Use class name # to access class attribute if salary >= Employee.MIN_SALARY: self.salary = salary
else: self.salary = Employee.MIN_SALARY
  • MIN_SALARY सभी इंस्टेंसेज़ में साझा है
  • क्लास एट्रिब्यूट डिफाइन करने के लिए self न इस्तेमाल करें
  • प्रथा है कि कैपिटल लेटर्स प्रयोग करें
  • क्लास एट्रिब्यूट का मान एक्सेस करने के लिए ClassName.ATTR_NAME उपयोग करें
Python में Object-Oriented Programming परिचय

क्लास-लेवल एट्रिब्यूट्स

class Employee:
    # Define a class attribute
    MIN_SALARY = 30000    

def __init__(self, name, salary): self.name = name # Use class name # to access class attribute if salary >= Employee.MIN_SALARY: self.salary = salary else: self.salary = Employee.MIN_SALARY
emp1 = Employee("John", 40000)
print(emp1.MIN_SALARY)
30000
emp2 = Employee("Jane", 60000)
print(emp2.MIN_SALARY)
30000
Python में Object-Oriented Programming परिचय

क्लास-लेवल एट्रिब्यूट्स में बदलाव

emp1 = Employee("John", 40000)
emp2 = Employee("Jane", 60000)

# Update MIN_SALARY of emp1 emp1.MIN_SALARY = 50000
# Print MIN_SALARY for both employees print(emp1.MIN_SALARY) print(emp2.MIN_SALARY)
50000
30000
Python में Object-Oriented Programming परिचय

क्लास-लेवल एट्रिब्यूट्स में बदलाव

  • MIN_SALARY क्लास डेफिनिशन में बनाया जाता है

 

  • किसी ऑब्जेक्ट का MIN_SALARY अपडेट करने से क्लास डेफिनिशन का मान नहीं बदलता

 

  • सुरक्षा - सॉफ्टवेयर में बिना वजह बदलाव रोकें!
Python में Object-Oriented Programming परिचय

क्लास एट्रिब्यूट्स क्यों उपयोग करें?

क्लास से जुड़ी ग्लोबल कॉन्स्टेंट्स

 

  • एट्रिब्यूट्स के न्यूनतम/अधिकतम मान
    • गलत डेटा रोकें
  • सामान्य मान और कॉन्स्टेंट्स, जैसे Database क्लास के लिए host, port
    • ऑब्जेक्ट बनाते समय दोहराव घटाएँ
Python में Object-Oriented Programming परिचय

अभ्यास करते हैं!

Python में Object-Oriented Programming परिचय

Preparing Video For Download...