अन्य उत्तर है कि वरीयता का उल्लेख के साथ not
तुलना में कम है in
, वास्तव में अपने बयान के बराबर है:
not (True in [False, True])
लेकिन ध्यान दें कि यदि आप अपनी स्थिति को अन्य से अलग नहीं करते हैं, तो अजगर को अलग करने के लिए 2 भूमिकाओं ( precedence
या chaining
) का उपयोग किया जाएगा , और इस मामले में अजगर ने पूर्ववर्तीता का उपयोग किया। इसके अलावा, ध्यान दें कि यदि आप एक ऐसी शर्त को अलग करना चाहते हैं जिसमें आपको केवल शर्त या मूल्य नहीं, कोष्ठक में सभी शर्त रखने की आवश्यकता हो:
(not True) in [False, True]
लेकिन के रूप में उल्लेख है, वहाँ ऑपरेटरों पर अजगर ने एक और संशोधन है श्रृंखलन :
अजगर प्रलेखन के आधार पर :
ध्यान दें कि तुलना, सदस्यता परीक्षण और पहचान परीक्षण, सभी में एक ही पूर्वता है और तुलनात्मक अनुभाग में वर्णित एक बाएं से दाएं चेनिंग सुविधा है।
उदाहरण के लिए निम्नलिखित कथन का परिणाम है False
:
>>> True == False in [False, True]
False
क्योंकि अजगर निम्नलिखित कथनों की श्रृंखला करेगा:
(True == False) and (False in [False, True])
जो वास्तव में False and True
यही है False
।
आप मान सकते हैं कि केंद्रीय वस्तु 2 संचालन और अन्य वस्तुओं (इस मामले में गलत) के बीच साझा की जाएगी।
और ध्यान दें कि यह सब तुलनाओं के लिए भी सही है, जिसमें सदस्यता परीक्षण और पहचान परीक्षण संचालन शामिल हैं जो ऑपरेंड का पालन कर रहे हैं:
in, not in, is, is not, <, <=, >, >=, !=, ==
उदाहरण :
>>> 1 in [1,2] == True
False
एक अन्य प्रसिद्ध उदाहरण संख्या सीमा है:
7<x<20
जो बराबर है:
7<x and x<20