पायथन क्लासेस और ऑब्जेक्ट्स के लिए एक शुरुआती गाइड

पायथन एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसका अर्थ है कि यह आपको ऑब्जेक्ट बनाने और प्रबंधित करने की अनुमति देता है। ऑब्जेक्ट एक क्लास का उदाहरण है, जो ऑब्जेक्ट बनाने के लिए एक ब्लूप्रिंट है। पायथन में महारत हासिल करने के लिए क्लास और ऑब्जेक्ट को समझना मौलिक है, क्योंकि यह प्रोग्रामिंग के लिए एक संरचित दृष्टिकोण प्रदान करता है। यह लेख आपको पायथन क्लास और ऑब्जेक्ट से परिचित कराएगा, उन्हें कैसे परिभाषित करें, और उन्हें अपने कोड में प्रभावी ढंग से कैसे उपयोग करें।

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

पायथन में एक क्लास ऑब्जेक्ट बनाने के लिए एक ब्लूप्रिंट है। यह विशेषताओं और विधियों का एक सेट परिभाषित करता है जो बनाई गई वस्तुओं में होंगे। विशेषताएँ वे चर हैं जो डेटा रखते हैं, जबकि विधियाँ फ़ंक्शन हैं जो ऑब्जेक्ट के व्यवहार को परिभाषित करती हैं। क्लास को class कीवर्ड का उपयोग करके परिभाषित किया जा सकता है, उसके बाद क्लास का नाम और एक कोलन होता है।

# Defining a simple class
class Dog:
    # Class attribute
    species = "Canis familiaris"

    # Initializer / Instance attributes
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Instance method
    def description(self):
        return f"{self.name} is {self.age} years old"

    # Another instance method
    def speak(self, sound):
        return f"{self.name} says {sound}"

वस्तु क्या है?

ऑब्जेक्ट क्लास का एक उदाहरण है। जब कोई क्लास परिभाषित की जाती है, तो उस क्लास का ऑब्जेक्ट बनाए जाने तक कोई मेमोरी आवंटित नहीं की जाती है। ऑब्जेक्ट बनाने में क्लास को ऐसे कॉल करना शामिल है जैसे कि वह कोई फ़ंक्शन हो। फिर आप डॉट नोटेशन का उपयोग करके ऑब्जेक्ट के माध्यम से क्लास की विशेषताओं और विधियों तक पहुँच सकते हैं।

# Creating an object of the Dog class
my_dog = Dog("Buddy", 5)

# Accessing attributes and methods
print(my_dog.description())  # Output: Buddy is 5 years old
print(my_dog.speak("Woof"))  # Output: Buddy says Woof

__init__ विधि

__init__ विधि पायथन में एक विशेष विधि है, जिसे कंस्ट्रक्टर के रूप में भी जाना जाता है। जब क्लास का नया इंस्टेंस बनाया जाता है तो इसे स्वचालित रूप से कॉल किया जाता है। __init__ विधि का उपयोग क्लास की विशेषताओं को आरंभ करने के लिए किया जाता है। इसे def कीवर्ड का उपयोग करके परिभाषित किया जाता है, उसके बाद विधि का नाम __init__ और self होता है, जो क्लास के इंस्टेंस को संदर्भित करता है।

# Example of using the __init__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Creating an object of the Person class
person1 = Person("Alice", 30)
print(person1.name)  # Output: Alice
print(person1.age)   # Output: 30

इंस्टेंस विशेषताएँ बनाम क्लास विशेषताएँ

पायथन में विशेषताओं को क्लास स्तर या इंस्टेंस स्तर पर परिभाषित किया जा सकता है। क्लास विशेषताएँ क्लास के सभी इंस्टेंस द्वारा साझा की जाती हैं, जबकि इंस्टेंस विशेषताएँ प्रत्येक इंस्टेंस के लिए विशिष्ट होती हैं। क्लास विशेषताएँ सीधे क्लास में परिभाषित की जाती हैं, जबकि इंस्टेंस विशेषताएँ विधियों के अंदर परिभाषित की जाती हैं, आमतौर पर __init__ विधि के भीतर।

# Example of class and instance attributes
class Car:
    # Class attribute
    wheels = 4

    def __init__(self, color, brand):
        # Instance attributes
        self.color = color
        self.brand = brand

# Creating objects of the Car class
car1 = Car("Red", "Toyota")
car2 = Car("Blue", "Honda")

print(car1.wheels)  # Output: 4
print(car2.wheels)  # Output: 4
print(car1.color)   # Output: Red
print(car2.color)   # Output: Blue

पायथन क्लासेस में विधियाँ

विधियाँ किसी क्लास के अंदर परिभाषित फ़ंक्शन हैं जो ऑब्जेक्ट के व्यवहार का वर्णन करते हैं। पायथन क्लास में विभिन्न प्रकार की विधियाँ हैं:

  • इंस्टेंस मेथड्स: ये सबसे आम प्रकार के तरीके हैं जो क्लास के इंस्टेंस पर काम करते हैं। वे ऑब्जेक्ट की स्थिति को संशोधित कर सकते हैं और ऑब्जेक्ट के लिए संदर्भ की आवश्यकता होती है, आमतौर पर self
  • क्लास विधियाँ: इन विधियों को @classmethod डेकोरेटर से चिह्नित किया जाता है तथा ये प्रथम पैरामीटर के रूप में क्लास का संदर्भ लेते हैं, जिसे सामान्यतः cls नाम दिया जाता है।
  • स्टेटिक मेथड्स: इन मेथड्स को @staticmethod डेकोरेटर से चिह्नित किया जाता है और इन्हें इंस्टेंस या क्लास के संदर्भ की आवश्यकता नहीं होती है। वे नियमित फ़ंक्शन की तरह व्यवहार करते हैं लेकिन क्लास के नामस्थान से संबंधित होते हैं।
# Example of instance, class, and static methods
class MathOperations:
    # Class attribute
    pi = 3.14

    # Instance method
    def square(self, number):
        return number ** 2

    # Class method
    @classmethod
    def circle_area(cls, radius):
        return cls.pi * (radius ** 2)

    # Static method
    @staticmethod
    def add(x, y):
        return x + y

# Using different types of methods
math = MathOperations()
print(math.square(4))             # Output: 16 (Instance method)
print(MathOperations.circle_area(5))  # Output: 78.5 (Class method)
print(MathOperations.add(3, 7))   # Output: 10 (Static method)

पायथन में वंशानुक्रम

इनहेरिटेंस ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की एक प्रमुख विशेषता है जो एक क्लास को दूसरे क्लास से गुण और विधियाँ इनहेरिट करने की अनुमति देती है। इनहेरिट करने वाले क्लास को चाइल्ड क्लास कहा जाता है, जबकि जिस क्लास से इनहेरिट किया जा रहा है उसे पैरेंट क्लास कहा जाता है। इनहेरिटेंस कोड की पुनः प्रयोज्यता को बढ़ावा देता है और कोड संरचना को सरल बनाता है।

# Example of inheritance
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return f"{self.name} makes a sound"

# Child class inheriting from Animal
class Cat(Animal):
    def speak(self):
        return f"{self.name} says Meow"

# Creating objects of the parent and child classes
animal = Animal("Generic Animal")
cat = Cat("Whiskers")

print(animal.speak())  # Output: Generic Animal makes a sound
print(cat.speak())     # Output: Whiskers says Meow

निष्कर्ष

प्रभावी पायथन प्रोग्राम लिखने के लिए क्लास और ऑब्जेक्ट को समझना बहुत ज़रूरी है। इन अवधारणाओं में महारत हासिल करके, आप ज़्यादा व्यवस्थित और कुशल कोड बना पाएँगे। इस गाइड में पायथन में क्लास को परिभाषित करने, ऑब्जेक्ट बनाने, विधियों का उपयोग करने और इनहेरिटेंस की मूल बातें शामिल हैं। अभ्यास के साथ, आप अपने पायथन प्रोजेक्ट में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग तकनीकों का उपयोग करने में सहज हो जाएँगे।

लिंक
Python