यह एक अजगर है 2 क्विर्क अजगर 2 में, संख्यात्मक और गैर संख्यात्मक मान तुलनीय हैं, और संख्यात्मक मान हमेशा कंटेनर वस्तुओं के मूल्य से कम माना जाता है:
>>> 1 < [1]
True
>>> 1 < [2]
True
>>> 1558 < [1]
True
>>> 1 < {}
True
जब विभिन्न प्रकार के दो कंटेनरों मानों की तुलना, दूसरे हाथ पर, यह
:
>>>() < []
False
>>> 'tuple' < 'list'
False
>>> {} < []
True
>>> 'dict' < 'list'
True
यह सुविधा है, तथापि, अजगर 3, जो संख्यात्मक और गैर-अंकीय मान नहीं रह तुलनीय बनाया में गिरा दिया गया है कि ध्यान में रखा जाता उनके प्रकार की नाम है
संपादित करें: यह अगला स्पष्टीकरण पूरी तरह से प्रयोग-आधारित है, और मुझे इसे वापस करने के लिए ध्वनि प्रलेखन नहीं मिला। अगर कोई इसे पाता है, तो मुझे इसके माध्यम से पढ़ने में खुशी होगी।
ऐसा लगता है कि उपयोगकर्ता परिभाषित वस्तुओं/गैर-कंटेनर ऑब्जेक्ट्स की तुलना में पाइथन 2 में और भी नियम हैं।
इस मामले में ऐसा लगता है कि संख्यात्मक मान हमेशा से रहे हैंअधिक से अधिक गैर-संख्यात्मक गैर कंटेनर मूल्यों से।
>>> class A: pass
...
>>> a = A()
>>> 1 > a
True
>>> 2.7 > a
True
अब, जब अलग, गैर-संख्यात्मक, गैर कंटेनर प्रकार के दो वस्तुओं की तुलना, ऐसा लगता है कि यह उनके पता कि ध्यान में रखा जाता है:
>>> class A: pass
...
>>> class B: pass
...
>>> a = A()
>>> a
<__main__.A instance at 0x0000000002265348>
>>> b = B()
>>> b
<__main__.B instance at 0x0000000002265048>
>>> a < b
False
>>> b < a
True
वास्तव में है कौन सा केले, अगर तुम मुझसे पूछो।
बेशक , वह सब के आसपास बदला जा सकता है अगर आप अपने वर्ग परिभाषा के अंदर __lt__()
और __gt__()
विधियों, जो <
और >
ऑपरेटरों के मानक व्यवहार का निर्धारण ओवरराइड करने के लिए परवाह है।
इन विधियों को संचालित करने के तरीके के बारे में और दस्तावेज found here हो सकता है।
नीचे की रेखा: विभिन्न प्रकारों के बीच तुलना से बचें जितना आप कर सकते हैं। परिणाम वास्तव में अप्रत्याशित, अनजान है और सभी अच्छी तरह से प्रलेखित नहीं है। इसके अलावा, जब भी संभव हो पाइथन 3 का उपयोग करें।
आपको त्रुटियां नहीं मिलती हैं, क्योंकि वस्तुएं तुलनीय हैं। 'सूची' उदाहरणों की तुलना 'int' उदाहरणों से की जा सकती है। '[4,5,6]> 3' आज़माएं। जहां तक मुझे याद है, कोई भी 'सूची' हमेशा किसी भी 'int' से अधिक है। इस प्रकार 'सूची' में तुलना विधियों को परिभाषित किया गया है। –