"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का परिचय

पायथन में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का परिचय

2024-11-08 को प्रकाशित
ब्राउज़ करें:650

Introduction to Object-Oriented Programming in Python

पायथन प्रोग्रामिंग भाषा

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

पायथन का सरल, सीखने में आसान सिंटैक्स पठनीयता पर जोर देता है और इस प्रकार दीर्घकालिक कार्यक्रम रखरखाव की लागत और जटिलता को कम करता है। यह कोड रखने के लिए विभिन्न पैकेजों का समर्थन करता है, जो प्रोग्राम मॉड्यूलैरिटी और कोड पुन: उपयोग को प्रोत्साहित करता है। पायथन दुभाषिया और व्यापक मानक पुस्तकालय सभी प्रमुख प्लेटफार्मों के लिए बिना किसी कीमत के उपलब्ध हैं।

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

पायथन सीखना आपको विभिन्न प्रकार के प्रोग्राम बनाने की अनुमति देता है और इसका मतलब यह भी है कि इसके उपयोगकर्ता के पास टूल और सुविधाओं का एक नया सेट उपलब्ध है। पायथन कई चीजें कर सकता है, जिनमें ये शामिल हैं, लेकिन इन्हीं तक सीमित नहीं:

वेब-आधारित

  • फ़ाइलें पढ़ें और लिखें
  • नेटवर्क अनुरोधों को सुनें और प्रतिक्रियाएँ भेजें
  • डेटा तक पहुंचने और अपडेट करने के लिए डेटाबेस से कनेक्ट करें

गैर वेब-आधारित

  • कमांड लाइन इंटरफेस (सीएलआई)
  • सर्वर
  • वेब स्क्रेपर्स
  • खेल

संदर्भ:
पायथन के बारे में
पायथन के प्रारंभिक वर्ष (गुइडो वैन रोसुम)

ऑब्जेक्ट-ओरिएंटेशन प्रोग्रामिंग प्रतिमान

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

संदर्भ:
पायथन में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
ऑब्जेक्ट-ओरिएंटेड और प्रक्रियात्मक प्रोग्रामिंग के बीच अंतर

ओओपी शर्तें

यहां कुछ प्रमुख शब्द दिए गए हैं जो ओओपी के लिए प्रासंगिक हैं और इस लेख में बाद में उदाहरणों द्वारा चित्रित किए जाएंगे।

  • वर्ग और उदाहरण
  • उदाहरण विधियां
  • गुण

कोड में कुछ कार्यान्वयन उदाहरण

वर्ग और उदाहरण:
क्लास ऐसे उदाहरण यानी ऑब्जेक्ट बनाने के लिए एक ब्लूप्रिंट है जो समान विशेषताओं और व्यवहारों को साझा करते हैं। यह विशेषताओं और विधियों के एक सेट को परिभाषित करता है जिसे ऑब्जेक्ट भी कर सकते हैं और निष्पादित कर सकते हैं।

एक वर्ग एक टेम्पलेट या संरचना के रूप में कार्य करता है जो आपको समान गुणों और व्यवहारों के साथ वस्तुओं के कई उदाहरण बनाने की अनुमति देता है। इसलिए, यह डेटा और फ़ंक्शंस को एक इकाई में समाहित करता है, कोड पुन: प्रयोज्यता और संगठन को बढ़ावा देता है।

यहां पेट वर्ग के लिए एक उदाहरण दिया गया है:

class Pet:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def introduce(self):
        print(f"Hi, my name is {self.name} and I am a {self.species}.")

    def eat(self, food):
        print(f"{self.name} is eating {food}.")

उदाहरण विधियां

उपरोक्त उदाहरण में, पेट क्लास की तीन विधियाँ हैं:

my_pet = Pet("Max", "dog")
my_pet.introduce()  # Output: Hi, my name is Max and I am a dog.
my_pet.eat("bones")  # Output: Max is eating bones.

init()-विधि एक विशेष विधि है जिसे कंस्ट्रक्टर कहा जाता है। जब पेट क्लास का एक नया उदाहरण बनाया जाता है तो यह स्वचालित रूप से निष्पादित होता है। यह प्रत्येक उदाहरण के लिए नाम और प्रजाति विशेषताओं को प्रारंभ करता है।

परिचय()-विधि पालतू जानवर का उसके नाम और प्रजाति के साथ परिचय कराते हुए एक संदेश प्रिंट करती है।

ईट()-विधि एक पैरामीटर, भोजन लेती है, और एक संदेश प्रिंट करती है जो दर्शाता है कि पालतू जानवर निर्दिष्ट भोजन खा रहा है।

ध्यान दें कि पेट वर्ग के कई उदाहरण बनाए जा सकते हैं और प्रत्येक उदाहरण का अपना नाम और प्रजाति विशेषताएँ होंगी।

गुण

नीचे दी गई तालिका कुछ संभावित विशेषताओं को दर्शाती है जो एक पालतू जानवर में हो सकती हैं।

वर्ग पालतू जानवर:

पहचान नाम आयु प्रजातियाँ
1 कोलीन 5 कुत्ता
2 राउडी 2 कुत्ता
3 व्हिस्कर्स 11 बिल्ली

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

class Pet:
    def __init__(self, id, name, age, species):
        self.id = id
        self.name = name
        self.age = age
        self.species = species

विभिन्न पालतू जानवरों को कॉल करना या तुरंत कॉल करना निम्नानुसार किया जा सकता है।

# Creating instances of Pet class
dog1 = Pet(1, “Colleen", 5, "dog”)
dog2 = Pet(2, “Rowdy", 2, “dog”)
cat3 = Pet(3, “Whiskers”, 11, “cat")

ओओपी के लाभ

ओओपी के कुछ प्रमुख लाभ हैं:

  • मॉड्यूलैरिटी और पुन: प्रयोज्यता
  • एनकैप्सुलेशन
  • रखरखाव
  • विरासत और बहुरूपता

मॉड्यूलैरिटी और पुन: प्रयोज्यता: OOP आपको अपने कोड को छोटे, मॉड्यूलर ऑब्जेक्ट में तोड़ने की अनुमति देता है। इन ऑब्जेक्ट्स को आपके प्रोग्राम के विभिन्न भागों में या अन्य प्रोग्रामों में पुन: उपयोग किया जा सकता है, जिससे कोड पुन: प्रयोज्यता को बढ़ावा मिलता है और दोहराव कम होता है।

एनकैप्सुलेशन: OOP डेटा और फ़ंक्शंस को ऑब्जेक्ट में इनकैप्सुलेट करता है, जो जटिल कोडबेस को व्यवस्थित और प्रबंधित करने में मदद करता है। यह डेवलपर को किसी ऑब्जेक्ट के आंतरिक कार्यान्वयन विवरण को छिपाने की अनुमति देता है और इसके साथ इंटरैक्ट करने के लिए केवल एक साफ़ इंटरफ़ेस प्रदर्शित करता है।

रखरखाव: OOP एक स्पष्ट और संगठित कोड संरचना को बढ़ावा देता है। ऑब्जेक्ट और उनकी इंटरैक्शन को आसानी से समझा और संशोधित किया जा सकता है, जिससे आपके कोड को बनाए रखना और डीबग करना आसान हो जाता है।

विरासत और बहुरूपता: वंशानुक्रम आपको मौजूदा वर्गों के आधार पर उनकी विशेषताओं और व्यवहारों को विरासत में लेते हुए नई कक्षाएं बनाने की अनुमति देता है। यह कोड के पुन: उपयोग को बढ़ावा देता है और कक्षाओं की एक पदानुक्रमित संरचना बनाने में मदद करता है। बहुरूपता लचीलापन और विस्तारशीलता प्रदान करते हुए, विभिन्न वर्गों की वस्तुओं को परस्पर उपयोग करने की अनुमति देता है।

लचीलापन और स्केलेबिलिटी: ओओपी प्रोग्रामिंग के लिए एक लचीला और स्केलेबल दृष्टिकोण प्रदान करता है। आप अपने कोड के अन्य हिस्सों को प्रभावित किए बिना, नई कक्षाएं बनाकर या मौजूदा को संशोधित करके आसानी से नई सुविधाएं जोड़ सकते हैं।

सहयोग: ओओपी सॉफ्टवेयर को डिजाइन करने और लागू करने के लिए एक सामान्य संरचना और शब्दावली प्रदान करके डेवलपर्स के बीच सहयोग को बढ़ावा देता है। यह कई डेवलपर्स को वस्तुओं और उनकी इंटरैक्शन की साझा समझ का उपयोग करके एक प्रोग्राम के विभिन्न हिस्सों पर एक साथ काम करने की अनुमति देता है।

परीक्षण और डिबगिंग: OOP परीक्षण और डिबगिंग को आसान बनाता है। वस्तुओं का व्यक्तिगत रूप से परीक्षण किया जा सकता है, जिससे समस्याओं को अलग करना और ठीक करना आसान हो जाता है। इसके अतिरिक्त, OOP मॉड्यूलर और शिथिल युग्मित कोड के उपयोग को प्रोत्साहित करता है, जिससे यूनिट परीक्षण लिखना आसान हो जाता है।

सारांश

पिछले अनुभाग में पायथन में ओओपी के सभी लाभों को दिया गया है जो अधिक व्यवस्थित, रखरखाव योग्य और स्केलेबल कोड लिखने में योगदान देता है, जो उत्पादकता और कोड गुणवत्ता में सुधार कर सकता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/oki99doki/introduction-to-object-origined-programming-in-python-161?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3