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

Python क्लास में इक्विवेलेंस ("इक्वेलिटी") ऑपरेटर का उपयोग कैसे करें?

यदि हम नीचे दिए गए कोड में इक्वेलिटी ऑपरेटर का उपयोग करते हैं, तो हमें आउटपुट के रूप में False मिलता है:

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

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

आउटपुट:

False

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

इस समस्या को दूर करने के लिए हमें __eq__ फंक्शन को ओवरराइड करना होगा:

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__ फंक्शन को भी ओवरराइड करना होगा। Python 3.x के लिए यह आवश्यक नहीं है। डॉक्यूमेंटेशन के अनुसार निम्न सत्य है:

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

  1. Windows पर Python का उपयोग कैसे करें Windows पर Python का उपयोग कैसे करें

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

  1. Tkinter Python में Thread का उपयोग कैसे करें? Tkinter Python में Thread का उपयोग कैसे करें?

    Tkinter के साथ, हम Threading का उपयोग करके एक समय में multiple functions call कर सकते हैं। यह एप्लिकेशन में कुछ functions के asynchronous execution को प्रदान करता है। Python में thread का उपयोग करने के लिए, हम threading नामक module import कर सकते हैं और इसकी Thread class को subclass कर सकते हैं। अपन

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

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