Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में गेट्टर और सेटर

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

जैसा कि नाम से पता चलता है, गेटर्स वे विधियाँ हैं जो निजी विशेषताओं तक पहुँचने में मदद करती हैं या निजी विशेषताओं का मूल्य प्राप्त करती हैं और सेटर्स वे विधियाँ हैं जो निजी विशेषताओं के मूल्य को बदलने या निर्धारित करने में मदद करती हैं।

निजी विशेषता एक्सेस करना

नीचे हम एक क्लास बनाने के लिए कोड लिखते हैं, इसे इनिशियलाइज़ करते हैं और बिना किसी अतिरिक्त तरीके के इसे वेरिएबल एक्सेस करते हैं।

उदाहरण

कक्षा वर्ष_ग्रेजुएट:def __init__(self, year=0):self._year =year# classgrad_obj =year_graded()# को इंस्टेंट करना 

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

<__main__.year_ग्रेजुएट ऑब्जेक्ट 0x00F2DD50>0
. पर

जबकि पहला प्रिंट स्टेटमेंट हमें बनाई गई वस्तु का विवरण देता है, दूसरा प्रिंट ऑब्जेक्ट हमें निजी विशेषता का डिफ़ॉल्ट मान देता है।

गेटर्स और सेटर्स का उपयोग करना

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

उदाहरण

कक्षा वर्ष_ग्रेजुएट:def __init__(self, year=0):self._year =year # getter method def get_year(self):return self._year# setter Methoddef set_year(self, a):self._year =agrad_obj =year_ग्रेजुएट ()# उपयोग करने से पहले setterprint(grad_obj.get_year())# उपयोग करने के बाद settergrad_obj.set_year(2019)print(grad_obj._year)

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:

02019

विशेषताओं को निजी बनाना

अगले उदाहरण में हम देखते हैं कि कैसे तरीकों को निजी बनाया जाए ताकि बाहरी कॉलिंग फ़ंक्शंस द्वारा इसमें चर को हेरफेर न किया जा सके। उन्हें केवल कक्षा के अंदर के कार्यों द्वारा हेरफेर किया जा सकता है। दो अंडरस्कोर लगाकर वे निजी हो जाते हैं।

उदाहरण

कक्षा वर्ष_ग्रेजुएट:def __init__(self, year=32):self._year =year # गेट्टर मेथड डिफ get_year(self):रिटर्न सेल्फ.__वर्ष # सेटटर मेथड को def set_year(self, a):सेल्फ बनाएं .__year =agrad_obj =year_graded()print(grad_obj._year)# सेटरप्रिंट का उपयोग करने से पहले(grad_obj.get_year())## # settergrad_obj.set_year(2019)print(grad_obj._year)
का उपयोग करने के बाद

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:

32AttributeError:'year_graded' ऑब्जेक्ट में कोई विशेषता नहीं है '_year_graded__year'

निजी तरीकों से मान पढ़ना

नहीं, हम संपत्ति विधि का उपयोग करके और गेट्टर विधि का उपयोग किए बिना निजी विशेषता मानों तक पहुंच सकते हैं।

उदाहरण

कक्षा वर्ष_ग्रेजुएट:def __init__(self, year=32):self._year =year @property def Aboutyear(self):return self.__year @Aboutyear.setter def Aboutyear(self, a):self.__year =agrad_obj =वर्ष_स्नातक ()प्रिंट(grad_obj._year)grad_obj.year =2018print(grad_obj.year)

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं:

322018

  1. किवी में पायथन चेकबॉक्स विजेट?

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

  1. पायथन - किवी में बटन एक्शन

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

  1. पायथन में विरासत

    इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले। वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है। वंशानुक्रम को