classes in python in hindi

पायथन एक बहुमुखी प्रोग्रामिंग भाषा है जो अपनी सरलता और पठनीयता के लिए जानी जाती है। इसकी शक्तिशाली विशेषताओं में से एक वस्तु-उन्मुख प्रोग्रामिंग (OOP) के लिए इसका समर्थन है। इस लेख में, हम पायथन में कक्षाओं की अवधारणा का पता लगाएंगे और कैसे वे हमें कुशल और संगठित कोड लिखने में सक्षम बनाते हैं। तो, चलो गोता लगाएँ!

classes in python in hindi
classes in python in hindi


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

पायथन क्लासेस की मूल बातें

वर्ग क्या हैं ?

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

एक वर्ग बनाना

पायथन में एक क्लास बनाने के लिए, हम इसका उपयोग करते हैंकक्षा कीवर्ड के बाद क्लास का नाम आता है। आइए एक का एक सरल उदाहरण लेते हैंव्यक्ति कक्षा:

class Person:
    pass

वर्ग गुण और विधियाँ

गुण और विधियों को वर्ग निकाय के भीतर परिभाषित किया गया है। विशेषताएँ वर्ग के प्रत्येक उदाहरण के लिए विशिष्ट डेटा संग्रहीत करती हैं, जबकि विधियाँ वर्ग से जुड़े कार्य हैं। यहाँ एक का एक उदाहरण हैव्यक्ति गुण और एक विधि के साथ वर्ग:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def greet(self):
        return f"Hello, my name is {self.name} and I'm {self.age} years old."

क्लास इंस्टेंसेस और ऑब्जेक्ट्स

एक वर्ग के उदाहरण बनाना

एक बार हमारे पास एक वर्ग होने के बाद, हम उस वर्ग के उदाहरण, जिन्हें वस्तु के रूप में भी जाना जाता है, बना सकते हैं। एक उदाहरण एक विशिष्ट घटना या एक वर्ग की प्राप्ति है। हम एक ही वर्ग के कई उदाहरण बना सकते हैं, जिनमें से प्रत्येक का अपना विशेषता मान सेट है।

person1 = Person("John Doe", 25)
person2 = Person("Jane Smith", 30)

विशेषताओं और विधियों तक पहुँचना

हम डॉट नोटेशन का उपयोग करके किसी उदाहरण की विशेषताओं और विधियों तक पहुँच सकते हैं। उदाहरण के लिए, एक्सेस करने के लिएनाम की विशेषताव्यक्ति 1, हम उपयोग करते हैंव्यक्ति1.नाम. इसी तरह, कॉल करने के लिएअभिवादन उसकि विधिव्यक्ति2, हम उपयोग करते हैंव्यक्ति2.ग्रीट ().

गुण संशोधित करना

उन्हें नए मान निर्दिष्ट करके विशेषताओं को संशोधित किया जा सकता है। उदाहरण के लिए, हम बदल सकते हैंआयु की विशेषताव्यक्ति 1 निम्नलिखित नुसार:

person1.age = 26

वंशानुक्रम और बहुरूपता

वंशानुक्रम और उपवर्ग

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

class Student(Person):
    pass

ओवरराइडिंग के तरीके

उपवर्ग सुपरक्लास से विरासत में मिली विधियों को ओवरराइड कर सकते हैं। इसका मतलब यह है कि एक उपवर्ग एक विधि का अपना कार्यान्वयन प्रदान कर सकता है जो पहले से ही सुपरक्लास में परिभाषित है।

class Student(Person):
    def greet(self):
        return f"Hello, my name is {self.name} and I'm a student."

बहुरूपता और विधि ओवरराइडिंग

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

एनकैप्सुलेशन और डेटा छिपाना

Encapsulation और जानकारी छुपाना

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

पहुँच विनिर्देशक

पायथन में, हम विशेषताओं और विधियों की दृश्यता और पहुंच को नियंत्रित करने के लिए एक्सेस स्पेसिफायर का उपयोग करते हैं। आमतौर पर उपयोग किए जाने वाले एक्सेस स्पेसिफायर सार्वजनिक, संरक्षित और निजी होते हैं।

गेटर्स और सेटर्स

गेटर्स और सेटर विशेष तरीके हैं जिनका उपयोग क्रमशः निजी विशेषताओं के मूल्यों को प्राप्त करने और सेट करने के लिए किया जाता है। वे अमूर्तता की एक अतिरिक्त परत प्रदान करते हैं और विशेषता मानों तक नियंत्रित पहुंच की अनुमति देते हैं।

उन्नत वर्ग अवधारणाएँ

क्लास कंस्ट्रक्टर्स

एक क्लास कंस्ट्रक्टर एक विशेष विधि है जिसे तब कहा जाता है जब किसी क्लास से कोई ऑब्जेक्ट बनाया जाता है। पायथन में, कंस्ट्रक्टर विधि का नाम है__गर्म__ और किसी वस्तु की विशेषताओं को आरंभ करने के लिए उपयोग किया जाता है।

वर्ग चर बनाम उदाहरण चर

कक्षा के सभी उदाहरणों के बीच वर्ग चर साझा किए जाते हैं, जबकि उदाहरण चर प्रत्येक उदाहरण के लिए अद्वितीय होते हैं। क्लास वेरिएबल्स को क्लास में किसी भी मेथड के बाहर परिभाषित किया जाता है, जबकि इंस्टेंस वेरिएबल्स को मेथड्स या कंस्ट्रक्टर के भीतर परिभाषित किया जाता है।

कक्षा के तरीके और स्थिर तरीके

इंस्टेंस मेथड्स के अलावा, पायथन क्लास मेथड्स और स्टैटिक मेथड्स को भी सपोर्ट करता है। वर्ग विधियों का उपयोग करके परिभाषित किया गया है@classmethod डेकोरेटर और वर्ग-स्तरीय विशेषताओं को एक्सेस और संशोधित कर सकते हैं। स्थिर तरीकों को परिभाषित किया गया है@staticmethod डेकोरेटर और उदाहरण या वर्ग विशेषताओं तक पहुंच नहीं है।

निष्कर्ष

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

अब जब आपको पायथन कक्षाओं की ठोस समझ हो गई है, तो यह आपके ज्ञान को व्यवहार में लाने और अपने स्वयं के वर्ग-आधारित कार्यक्रम बनाने का समय है। हैप्पी कोडिंग!

अक्सर पूछे जाने वाले प्रश्न

Q1: क्या पायथन में एक वर्ग कई मूल वर्गों से प्राप्त हो सकता है?

ए 1: हां, पायथन एकाधिक विरासत का समर्थन करता है, जिससे कक्षा को कई मूल वर्गों से प्राप्त किया जा सकता है।

Q2: मैं एक वर्ग विशेषता को उदाहरणों से ओवरराइड होने से कैसे रोक सकता हूं?

A2: का उपयोग करकेस्वयं.__वर्ग__.विशेषता_नाम अंकन, आप वर्ग विशेषता का उल्लेख कर सकते हैं और ओवरराइडिंग को रोक सकते हैं।

Q3: क्लास मेथड और स्टैटिक मेथड में क्या अंतर है?

A3: क्लास मेथड्स क्लास पर ही काम करते हैं, जबकि स्टैटिक मेथड्स की इंस्टेंस या क्लास एट्रिब्यूट्स तक पहुंच नहीं है।

Q4: क्या मैं एक कंस्ट्रक्टर को परिभाषित किए बिना एक वर्ग का उदाहरण बना सकता हूँ?

ए 4: हां, यदि स्पष्ट रूप से परिभाषित नहीं किया गया है तो पायथन एक डिफ़ॉल्ट कन्स्ट्रक्टर प्रदान करता है।

Q5: मैं कैसे जांच सकता हूं कि कोई वस्तु किसी विशिष्ट वर्ग से संबंधित है या नहीं?

A5: आप का उपयोग कर सकते हैंउदाहरण (वस्तु, वर्ग) यह जाँचने के लिए कार्य करता है कि कोई वस्तु किसी विशिष्ट वर्ग की है या नहीं।

Tags

एक टिप्पणी भेजें

0 टिप्पणियाँ
* Please Don't Spam Here. All the Comments are Reviewed by Admin.