पायथन में ओओपी
पायथन में ओओपी एक प्रोग्रामिंग दृष्टिकोण है जो वस्तुओं और कक्षाओं के साथ-साथ अन्य सामान्य प्रोग्रामिंग भाषाओं का उपयोग करने पर केंद्रित है। वस्तुएं किसी भी वास्तविक दुनिया की संस्थाएं हो सकती हैं। पायथन डेवलपर्स को कोड पुन: प्रयोज्य पर प्रमुख फोकस के साथ OOPs दृष्टिकोण का उपयोग करके अनुप्रयोगों को विकसित करने की अनुमति देता है। पायथन में कक्षाएं और ऑब्जेक्ट बनाना बहुत आसान है।
कक्षा क्या है?
पायथन में एक वर्ग डेटा और कार्यों का एक तार्किक समूह है। यह डेटा संरचनाओं को बनाने की स्वतंत्रता देता है जिसमें मनमाना सामग्री होती है और इसलिए आसानी से सुलभ होती है।
उदाहरण के लिए, किसी भी बैंक कर्मचारी के लिए, जो ग्राहक का विवरण ऑनलाइन प्राप्त करना चाहते हैं, ग्राहक वर्ग में जाएंगे , जहां इसके सभी विवरण जैसे लेनदेन विवरण, निकासी और जमा विवरण, बकाया ऋण इत्यादि को सूचीबद्ध किया जाएगा।
इस ट्यूटोरियल में हम सीखेंगे,
- पायथन कक्षाओं को कैसे परिभाषित करें
- कैसे काम करता है
- पायथन कंस्ट्रक्टर्स
पायथन कक्षाओं को कैसे परिभाषित करें
कक्षा को परिभाषित करने के लिए आपको निम्नलिखित बिंदुओं पर विचार करने की आवश्यकता है
चरण 1) पायथन में, कक्षाएं "क्लास" कीवर्ड द्वारा परिभाषित की जाती हैं
class myClass():
चरण 2) कक्षाओं के अंदर, आप उन कार्यों या विधियों को परिभाषित कर सकते हैं जो इस वर्ग का हिस्सा हैं
def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
- यहाँ हमने मेथड 1 को परिभाषित किया है जो "गुरु99" को प्रिंट करता है।
- एक अन्य विधि जिसे हमने परिभाषित किया है वह है Method2 जो "सॉफ्टवेयर टेस्टिंग" + SomeString प्रिंट करता है। SomeString कॉलिंग विधि द्वारा आपूर्ति किया गया चर है
चरण 3) क्लास में सब कुछ इंडेंट किया जाता है, जैसे फंक्शन में कोड, लूप, यदि स्टेटमेंट, आदि।
नोट : पायथन में "स्वयं" का उपयोग करने के बारे में
- स्व-तर्क का तात्पर्य वस्तु से ही है। इसलिए स्व शब्द का प्रयोग। तो इस विधि के अंदर, स्वयं इस वस्तु के विशिष्ट उदाहरण को संदर्भित करेगा, जिसे चालू किया जा रहा है।
- पायथन द्वारा संस्थापन विधियों के पहले पैरामीटर को इंगित करने के लिए स्वयं को पायथन द्वारा कन्वेंशन द्वारा पसंद किया जाने वाला नाम है। यह वस्तुओं के सदस्यों तक पहुँचने के लिए पायथन सिंटैक्स का हिस्सा है
चरण 4) वर्ग की एक वस्तु बनाने के लिए
c = myClass()
चरण 5) एक कक्षा में एक विधि को कॉल करने के लिए
c.method1()c.method2(" Testing is fun")
- ध्यान दें कि जब हम मेथड 1 या मेथड 2 कहते हैं, तो हमें स्व-कीवर्ड की आपूर्ति करने की आवश्यकता नहीं है। यह हमारे लिए पायथन रनटाइम द्वारा स्वचालित रूप से नियंत्रित किया जाता है।
- उदाहरण के लिए, जब आप इसे जानबूझकर प्रदान करते हैं या नहीं, तो पायथन रनटाइम "सेल्फ" वैल्यू पास करेगा
- आपको बस गैर-आत्म-तर्कों की परवाह करनी होगी
स्टेप 6) यहां पूरा कोड है
# कक्षाओं के साथ काम करने के लिए उदाहरण फ़ाइलवर्ग myClass ():def1 विधि (स्व):प्रिंट ("गुरु 99")डीईटी मेथड 2 (सेल्फ, कुछ स्ट्रिंग):प्रिंट ("सॉफ़्टवेयर परीक्षण: + someString)def मुख्य ():# कक्षा के तरीकों का अभ्यास करेंc = myClass ()c.method1 ()c.method2 ("परीक्षण मजेदार है")अगर __name __ == "__main__":मुख्य()
कैसे काम करता है
वंशानुक्रम वस्तु-उन्मुख प्रोग्रामिंग में उपयोग की जाने वाली सुविधा है; यह एक नए वर्ग को परिभाषित करने के साथ कम या किसी मौजूदा वर्ग के लिए कोई संशोधन नहीं करता है। नई कक्षा को व्युत्पन्न वर्ग कहा जाता है और एक से जिसे यह विरासत में मिलती है उसे आधार कहा जाता है । अजगर विरासत का समर्थन करता है; यह कई विरासतों का भी समर्थन करता है । एक वर्ग दूसरे वर्ग से उपवर्ग या वारिस वर्ग की विशेषताओं और व्यवहार विधियों को विरासत में ले सकता है।
पायथन इनहेरिटेंस सिंटेक्स
class DerivedClass(BaseClass):body_of_derived_class
चरण 1) निम्नलिखित कोड चलाएँ
# कक्षाओं के साथ काम करने के लिए उदाहरण फ़ाइलवर्ग myClass ():def1 विधि (स्व):प्रिंट ("गुरु 99")क्लास चाइल्डक्लास (myClass):# विधि 1 (स्व):# myClass.method1 (स्व);#print ("childClass Method1")डीईटी मेथड 2 (स्व):प्रिंट ("चाइल्डक्लास मेथड 2")def मुख्य ():# कक्षा के तरीकों का अभ्यास करेंc2 = childClass ()c2.method1 ()# c2.method2 ()अगर __name __ == "__main__":मुख्य()
ध्यान दें कि चाइल्डक्लास में, मेथड 1 परिभाषित नहीं है, लेकिन यह माता-पिता मायक्लास से लिया गया है। आउटपुट "गुरु99 है।"
चरण 2) Uncomment Line # 8 & 10. कोड चलाएँ
अब, चाइल्डक्लास में विधि 1 को परिभाषित किया गया है और आउटपुट "चाइल्डक्लास मेथड 1" को सही ढंग से दिखाया गया है।
चरण 3) Uncomment Line # 9। कोड चलाएँ
आप सिंटैक्स का उपयोग करके मूल वर्ग की एक विधि कह सकते हैं
ParentClassName.MethodName(self)
हमारे मामले में, हम कहते हैं, myClass.method1 (स्वयं) और गुरु 99 को उम्मीद के मुताबिक मुद्रित किया गया है
चरण 4 ) Uncomment Line # 19। कोड चलाएँ।
चाइल्ड क्लास के तरीके 2 को कहा जाता है और "चाइल्डक्लास मेथड 2" को उम्मीद के मुताबिक छापा जाता है।
पायथन कंस्ट्रक्टर्स
एक कंस्ट्रक्टर एक क्लास फ़ंक्शन है जो किसी ऑब्जेक्ट को पूर्वनिर्धारित मानों को इंस्टेंट करता है।
यह एक डबल अंडरस्कोर (_) से शुरू होता है। यह __init __ () विधि है
नीचे दिए गए उदाहरण में हम कंस्ट्रक्टर का उपयोग करने वाले उपयोगकर्ता का नाम ले रहे हैं।
class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
आउटपुट होगा:
गुरु99 में आपका स्वागत है, एलेक्स
अजगर 2 उदाहरण
उपरोक्त कोड पायथन 3 उदाहरण हैं, यदि आप पायथन 2 में चलना चाहते हैं तो कृपया निम्नलिखित कोड पर विचार करें।
# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass myClass():def method1(self):print "Guru99"class childClass(myClass):#def method1(self):#myClass.method1(self);#print "childClass Method1"def method2(self):print "childClass method2"def main():# exercise the class methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()
सारांश:
"क्लास" फ़ंक्शन और डेटा का एक तार्किक समूह है। पायथन क्लास ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की सभी मानक विशेषताएं प्रदान करता है।
- कक्षा विरासत तंत्र
- एक व्युत्पन्न वर्ग जो अपने आधार वर्ग की किसी भी विधि को ओवरराइड करता है
- एक विधि उसी नाम से बेस क्लास की विधि कह सकती है
- पायथन कक्षाएं कीवर्ड "क्लास" द्वारा ही परिभाषित की जाती हैं
- कक्षाओं के अंदर, आप उन कार्यों या विधियों को परिभाषित कर सकते हैं जो कक्षा का हिस्सा हैं
- एक कक्षा में सब कुछ इंडेंट होता है, जैसे फंक्शन में कोड, लूप, स्टेटमेंट आदि।
- पाइथन में आत्म तर्क वस्तु को संदर्भित करता है। पायथन द्वारा संस्थापन विधियों के पहले पैरामीटर को इंगित करने के लिए स्वयं को पायथन द्वारा कन्वेंशन द्वारा पसंद किया जाने वाला नाम है
- उदाहरण के लिए, उदाहरण के लिए, यदि आप इसे जानबूझकर प्रदान करते हैं या नहीं
- पायथन में, एक वर्ग दूसरे वर्ग से उपवर्ग या वारिस वर्ग की विशेषताओं और व्यवहार विधियों को विरासत में ले सकता है।