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

Python में ऑपरेटर ओवरलोडिंग कैसे काम करती है?

हम जानते हैं कि हम नंबर जोड़ने के लिए + ऑपरेटर का उपयोग कर सकते हैं और उसी समय स्ट्रिंग्स को कनकैटेनेट करने के लिए भी। यह संभव है क्योंकि + ऑपरेटर int क्लास और str क्लास दोनों द्वारा ओवरलोड किया गया है। ऑपरेटर्स मूल रूप से संबंधित क्लासेस में परिभाषित मेथड्स होते हैं। ऑपरेटर्स के लिए मेथड्स को परिभाषित करना ऑपरेटर ओवरलोडिंग के रूप में जाना जाता है। उदाहरण के लिए, कस्टम ऑब्जेक्ट्स के साथ + ऑपरेटर का उपयोग करने के लिए हमें __add__ नामक मेथड को परिभाषित करने की आवश्यकता होती है।

उदाहरण

निम्न कोड से समझना आसान हो जाता है कि ऑपरेटर ओवरलोडिंग कैसे काम करती है:

import math

class Circle:
    def __init__(self, radius):
        self.__radius = radius
    def setRadius(self, radius):
        self.__radius = radius
    def getRadius(self):
        return self.__radius
    def area(self):
        return math.pi * self.__radius ** 2
    def __add__(self, another_circle):
        return Circle(self.__radius + another_circle.__radius)

c1 = Circle(3)
print(c1.getRadius())
c2 = Circle(6)
print(c2.getRadius())
c3 = c1 + c2  # यह इसलिए क्योंकि हमने __add__ मेथड जोड़कर + ऑपरेटर को ओवरलोड किया है
print(c3.getRadius())

आउटपुट

यह आउटपुट देता है:

3
6
9

ऑपरेटर के व्यवहार को संशोधित करना ताकि यह यूज़र-डिफाइन्ड टाइप्स के साथ काम करे, ऑपरेटर ओवरलोडिंग कहलाता है। Python में हर ऑपरेटर के लिए एक संबंधित स्पेशल मेथड होता है, जैसे __add__। अधिक जानकारी के लिए, docs.python.org/ref/specialnames.html देखें।

  1. - पायथन में लिस्ट पर * ऑपरेटर कैसे काम करता है?

    स्टार (*) ऑपरेटर सीक्वेंस/कलेक्शन को पोजिशनल आर्गुमेंट्स में अनपैक करता है। इसलिए यदि आपके पास एक लिस्ट है और आप उस लिस्ट के आइटम्स को प्रत्येक पोजिशन के लिए आर्गुमेंट्स के रूप में पास करना चाहते हैं जैसे वे लिस्ट में हैं, तो प्रत्येक एलिमेंट को व्यक्तिगत रूप से इंडेक्स करने के बजाय, आप बस * ऑपरेटर

  1. - पायथन में \B रेगुलर एक्सप्रेशन कैसे काम करता है?

    वर्ड बाउंड्री \b उन पोजीशन से मैच करता है जहां एक तरफ वर्ड कैरेक्टर होता है (आमतौर पर अक्षर, अंक या अंडरस्कोर)। \B उन सभी पोजीशन से मैच करता है जहां \b मैच नहीं करता। निम्नलिखित कोड दर्शाता है कि रेगेक्स \B कैसे काम करता है: import re result = re.findall(r\Bcat, certificate) result2 = re.findall(r

  1. - पायथन फ़ाइलों में अंडरस्कोर _ कैसे काम करता है?

    अंडरस्कोर (_) पायथन में विशेष है। पायथन में अंडरस्कोर का उपयोग करने के 5 मुख्य मामले हैं। 1. इंटरप्रेटर में अंतिम एक्सप्रेशन का मान स्टोर करना पायथन इंटरप्रेटर अंतिम एक्सप्रेशन के मान को _ नामक विशेष वेरिएबल में स्टोर करता है। >>> 12 + 10 22 >>> _ 22 2. विशिष्ट मानों को अनदेखा करन