6
मान लीजिए मैं निम्नलिखित कार्यक्रम है:क्या __ne__ एक ओवरराइड __eq__ का उपयोग करता है?
class A(object):
def __eq__(self, other):
return True
a0 = A()
a1 = A()
print a0 != a1
आप अजगर के साथ इसे चलाते हैं उत्पादन True
है। मेरा सवाल
__ne__
विधि लागू नहीं की गई है, क्या पाइथन डिफ़ॉल्ट पर गिरते हैं?- यदि पाइथन एक डिफ़ॉल्ट विधि पर पड़ता है यह निर्धारित करने के लिए कि क्या दो ऑब्जेक्ट बराबर हैं या नहीं, तो क्या इसे
__eq__
पर कॉल नहीं करना चाहिए और फिर परिणाम को अस्वीकार कर देना चाहिए?
तो यदि '' __ne__'' लागू नहीं किया गया है, तो क्या मुझे दो वस्तुओं की तुलना करने के लिए ''! = '' का उपयोग करने पर पायथन एक अपवाद फेंकना चाहिए? – dorafmon
@ डोराफमन: नहीं, क्योंकि डिफ़ॉल्ट कार्यान्वयन '__eq__' से परामर्श नहीं करता है, यह केवल 'स्वयं अन्य नहीं है' देता है। –