Comparing dissimilar types in python -


पहले कोड:

  वर्ग myClass (वस्तु): def __cmp __ (स्वयं, अन्य ): वापसी सीएमपी (प्रकार (स्वयं), प्रकार (अन्य)) या सीपीपी (आत्म .__ कुछ, अन्य .__ कुछ)  

क्या यह अजथन में अन्य प्रकारों के लिए समान आदेश का उत्पादन करता है? क्या इसके लिए एक सही मुहावर है?

गूगल पर चारों ओर देखकर मुझे कुछ प्रासंगिक जानकारी मिली उद्धरण:

कार्यान्वयन नोट: संख्याओं को छोड़कर विभिन्न प्रकार के ऑब्जेक्ट उनके प्रकार के नामों द्वारा क्रमबद्ध होते हैं; समान प्रकार के ऑब्जेक्ट्स जो उचित तुलना का समर्थन नहीं करते हैं उनके पते द्वारा आदेश दिए जाते हैं।

यह सुझाव देता है कि अगर मैं उस व्यवहार का पालन करना चाहता हूं, तो मुझे

  वर्ग myClass (ऑब्जेक्ट): def __cmp __ (स्वयं, अन्य): वापसी (सीपीपी (स्व .__ वर्ग __.__ नाम__, अन्य .__ वर्ग __.__ नाम) या सीएमपी (स्वयं .__ कुछ, अन्य .__ कुछ))  < / Pre> 

विशेष रूप से दुर्भाग्यपूर्ण है कि मुझे dict s के साथ ट्रांज़िटिविटी के लिए एक असाधारण मुश्किल समय हो सकता है, जो कि मैं विशेष रूप से लागू करना चाहता था

क्या मुझे अपने तर्कों के प्रकारों की जांच करने की ज़रूरत है? क्या अजगर भी मुझे यह देखते हैं?

अजगर 2 दुर्भाग्य से इस तरह के "विदेशी" तुलना का समर्थन किया (सौभाग्य से abrogated पायथन 3 में) यह अंतर्निहित व्यवहार का अनुकरण करना आसान नहीं है क्योंकि इसमें बहुत सारे विशेष मामले हैं, उदाहरण के लिए फ्लोट और इंट सीधा तुलना करें (कोई प्रकार-तुलना ओवरराइड नहीं है जैसा आपने इसे कोडित किया है) लेकिन जटिल किसी भी तुलना (== और =! हमेशा अपवाद बढ़ाएं क्या आप वास्तव में इन सभी quirks और wiggles का अनुकरण करने की आवश्यकता है? ऐसी ज़रूरत बहुत ही असामान्य होगी। यदि आपका प्रकार "संख्यात्मक" है (जैसे दशमलव को देखें। दशमलव) अन्य संख्यात्मक प्रकारों के साथ अच्छा खेलने की आवश्यकता है, मुझे लगता है, लेकिन "तुलनीय संख्या" वाले प्रकार के वास्तविक शब्द समझदार बाधाएं कम नहीं हैं!


Comments

Popular posts from this blog

email - PHP mail error ... failed to open stream : permission denied -

c# - ListView onScroll event -

c - Linux mmap() error -