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

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


हम जानते हैं कि हम संख्याओं को जोड़ने के लिए और साथ ही स्ट्रिंग को जोड़ने के लिए + ऑपरेटर का उपयोग कर सकते हैं। यह संभव है क्योंकि + ऑपरेटर को इंट क्लास और स्ट्र क्लास दोनों द्वारा ओवरलोड किया जाता है। ऑपरेटर मूल रूप से संबंधित वर्गों में परिभाषित विधियां हैं। ऑपरेटरों के लिए परिभाषित विधियों को ऑपरेटर ओवरलोडिंग के रूप में जाना जाता है। उदाहरण के लिए कस्टम ऑब्जेक्ट के साथ + ऑपरेटर का उपयोग करने के लिए हमें __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 # This is because we have overloaded + operator by adding a method  __add__
print(c3.getRadius())
एक विधि जोड़कर + ऑपरेटर को ओवरलोड किया है

आउटपुट

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

3
6
9

एक ऑपरेटर के व्यवहार को संशोधित करना ताकि वह उपयोगकर्ता द्वारा परिभाषित प्रकारों के साथ काम करे, ऑपरेटर ओवरलोडिंग कहलाता है। पायथन में प्रत्येक ऑपरेटर के लिए एक विशेष विशेष विधि है, जैसे __add__। अधिक विवरण के लिए, देखें docs.python.org/ref/specialnames.html.



  1. पायथन में * ऑपरेटर सूची पर कैसे काम करता है?

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

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

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

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

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