पायथन बुनियादी बातें: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP)

Lesson 2 of 7 • 10 XP

Keep your place in this quest

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

एक बार जब आपने कोई क्लास डिफ़ाइन कर ली, तो आप उससे ऑब्जेक्ट्स बनाकर उसे जीवित कर सकते हैं।
याद रखें: एक क्लास केवल एक ब्लूप्रिंट होता है — इसमें तब तक कोई वास्तविक डेटा नहीं होता जब तक आप उस पर आधारित एक ऑब्जेक्ट (जिसे इंस्टैंस भी कहा जाता है) नहीं बनाते।


ऑब्जेक्ट कैसे बनाएं

किसी क्लास से ऑब्जेक्ट बनाने के लिए, आप क्लास के नाम को एक फ़ंक्शन की तरह कॉल करते हैं, और इसके __init__ मेथड के लिए आवश्यक पैरामीटर पास करते हैं।

उदाहरण:

person1 = Person("John", 30)

यहाँ चरणबद्ध प्रक्रिया है:

  1. Python Person("John", 30) देखता है और Person क्लास के अंदर __init__ मेथड को कॉल करता है।
  2. "John" को name एट्रिब्यूट में और 30 को इस विशेष ऑब्जेक्ट के लिए age एट्रिब्यूट में असाइन किया जाता है।
  3. एक नया ऑब्जेक्ट बनाया जाता है और उसे person1 वेरिएबल में स्टोर किया जाता है।
TIP: वेरिएबल `person1` केवल मेमोरी में ऑब्जेक्ट का संदर्भ है — आप जरूरत के अनुसार एक ही ऑब्जेक्ट की ओर कई वेरिएबल्स पॉइंट कर सकते हैं।

एट्रिब्यूट्स और मेथड्स तक पहुंच

एक बार जब आपके पास ऑब्जेक्ट होता है, तो आप इसके एट्रिब्यूट्स (डेटा) और मेथड्स (कार्रवाइयाँ) को डॉट नोटेशन का उपयोग करके एक्सेस कर सकते हैं।

उदाहरण:

print(person1.name)      # आउटपुट: John
person1.greet()          # आउटपुट: Hello, my name is John and I am 30 years old.
  • person1.name ऑब्जेक्ट में स्टोर name एट्रिब्यूट का मान प्राप्त करता है।
  • person1.greet() greet मेथड को कॉल करता है, जो ऑब्जेक्ट के एट्रिब्यूट्स का उपयोग करके एक व्यक्तिगत संदेश दिखाता है।

IMPORTANT!: जब आप कोई मेथड कॉल करते हैं, तो आपको पैरेंथेसिस () शामिल करना ज़रूरी है — अन्यथा, आप केवल मेथड का संदर्भ ले रहे होते हैं, उसे निष्पादित नहीं कर रहे होते।


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

क्लास की एक बड़ी ताकत यह है कि आप इससे कई सारे ऑब्जेक्ट्स बना सकते हैं, हर एक की अपनी अलग डेटा होती है।

उदाहरण:

person2 = Person("Alice", 25)

print(person2.name)  # आउटपुट: Alice
person2.greet()      # आउटपुट: Hello, my name is Alice and I am 25 years old.

यहां:

  • person1 और person2 दोनों Person ऑब्जेक्ट्स हैं, लेकिन हर एक की अपनी स्टेट (name और age वैल्यूज़) होती है।
  • greet() जैसे मेथड दोनों ऑब्जेक्ट्स के लिए समान तरीके से काम करते हैं, लेकिन उनके एट्रिब्यूट्स के आधार पर अलग-अलग नतीजे देते हैं।

समाप्ति

ऑब्जेक्ट बनाना आपके क्लासेस को जीवन देने का तरीका है। एक ही ब्लूप्रिंट से, आप कई अनूठे इंस्टैंस बना सकते हैं, जिनमें अपना डेटा होता है लेकिन व्यवहार एक जैसा होता है।

अगले पाठ में, हम inheritance की खोज करेंगे — जो मौजूदा क्लासेस पर आधारित नई क्लासेस बनाने, उनकी कार्यक्षमता दोबारा उपयोग और विस्तार करने का तरीका है।