[Python] NotImplementedError को बढ़ाने के बजाय क्यों नहीं कार्यान्वित किया गया


Answers

क्योंकि उनके पास अलग-अलग उपयोग के मामले हैं।

दस्तावेज़ों का उद्धरण (पायथन 3.6):

NotImplemented

द्विआधारी विशेष तरीकों (उदाहरण के लिए __eq__() , __lt__() , __add__() , __rsub__() , आदि) द्वारा यह संकेत दिया जाना चाहिए कि ऑपरेशन अन्य प्रकार के संबंध में लागू नहीं किया गया है

अपवाद नहीं कार्यान्वित त्रुटि

[...] उपयोगकर्ता परिभाषित आधार वर्गों में, अमूर्त तरीकों को इस अपवाद को उठाना चाहिए जब उन्हें विधि को ओवरराइड करने के लिए व्युत्पन्न कक्षाओं की आवश्यकता होती है, या कक्षा को विकसित करने के लिए विकसित किया जा रहा है ताकि वास्तविक कार्यान्वयन को अभी भी जोड़ा जा सके।

विवरण के लिए लिंक देखें।

Question

पायथन में एक सिंगलटन है जिसे NotImplemented कहा जाता है।

NotImplementedError अपवाद को बढ़ाने के बजाय कोई भी कभी वापस नहीं NotImplementedError है? क्या यह केवल अजीब तरीकों को निष्पादित करने वाले कोड जैसे बग खोजने में कठिन नहीं होगा?




ऐसे कार्य हैं जो अपवाद और फ़ंक्शंस को बढ़ाते हैं जो नहीं करते हैं, return NotImplemented न करें return NotImplemented किए गए के लिए हो सकता है .... यह वास्तव में प्रोग्रामर / डिज़ाइन पर निर्भर करता है। यही कारण है कि वे दोनों उपयोग के लिए हैं।