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

हम पायथन कक्षाओं में तुल्यता ("समानता") ऑपरेटर का उपयोग कैसे करते हैं?

यदि हम नीचे दिए गए कोड में समानता ऑपरेटर का उपयोग करते हैं, तो हमें आउटपुट के रूप में झूठा मिलता है

class Integer:
    def __init__(self, number):
        self.number = number

n1 = Integer(1)
n2 = Integer(1)
print bool(n1 == n2)

आउटपुट

False

ऐसा इसलिए है क्योंकि पायथन डिफ़ॉल्ट रूप से तुलना संचालन के लिए ऑब्जेक्ट आइडेंटिफ़ायर का उपयोग करता है:

इस समस्या को दूर करने के लिए हमें __eq__function

. को ओवरराइड करना होगा
class Integer:
    def __init__(self, number):
        self.number = number
    def __eq__(self, other):

       if isinstance(self, other.__class__):

          return self.__dict__ == other.__dict__

       return False
n1 = Integer(1)
n2 = Integer(1)
print bool (n1 == n2)
print bool (n1 != n2)

आउटपुट

True
True

Python 2.x के लिए, हमें __ne__function को भी ओवरराइड करना होगा। यह Python 3.x के लिए आवश्यक नहीं है। दस्तावेज़ीकरण के अनुसार निम्नलिखित सत्य है।

डिफ़ॉल्ट रूप से, __ne__() __eq__() को प्रतिनिधि करता है और परिणाम को तब तक उलट देता है जब तक कि इसे लागू नहीं किया जाता है। तुलना ऑपरेटरों के बीच कोई अन्य निहित संबंध नहीं हैं, उदाहरण के लिए, (x

  1. विंडोज़ पर पायथन का उपयोग कैसे करें

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

  1. टिंकर पायथन में थ्रेड का उपयोग कैसे करें?

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

  1. पायथन में लैम्ब्डा फ़ंक्शन का उपयोग कैसे करें?

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