2015-10-31 12 views

उत्तर

9

सरल शब्दों में, ऑपरेटर == के बराबर होती है उन दो वस्तुओं के बीच एक समानता तुलना प्रदर्शन करेंगे: एक सेट और एक बूलियन मान बराबर होना कभी नहीं होगा, तो तुलना का परिणाम गलत है। दूसरी ओर, बस if obj (या if not obj) की जांच करना ऑब्जेक्ट की सत्यता की जांच करेगा, जिसे प्रत्येक ऑब्जेक्ट के लिए मूल्यांकन किया जा सकता है। एक तरह से, यह वास्तव में if bool(obj) का उपयोग कर एक प्रकार का रूपांतरण करता है। और खाली सेट के लिए, यह झूठा है।

data model में, ये दोनों ऑपरेशन अलग-अलग विशेष विधि नामों का आह्वान करते हैं। समानता ऑपरेटर का उपयोग करके दो ऑब्जेक्ट्स की तुलना करना __eq__ को ऑब्जेक्ट पर bool() पर कॉल करते समय __bool__ का आह्वान करेगा।

5

ऑपरेटर == 2 वस्तु के मूल्यों की जाँच करेगा और इस मामले में एक खाली set() और एक झूठी मूल्य एक ही मूल्य नहीं है।

और अजगर यह सच है के रूप में झूठी और कोई भी खाली दृश्यों, आप test वस्तु के सत्यापन की जांच करना चाहते हैं के रूप में कोई खाली अनुक्रम का मूल्यांकन करता है के बाद से आप कर सकते हैं सरल उपयोग if:

if test: 
    #do stuff 

Truth Value Testing

किसी ऑब्जेक्ट का परीक्षण सत्य मूल्य के लिए किया जा सकता है, अगर किसी शर्त या स्थिति में या नीचे बूलियन ऑपरेशंस के संचालन के लिए उपयोग किया जा सकता है। निम्न मान गलत माना जाता है:

  • सूची आइटम

  • कोई नहीं

  • झूठी

  • किसी भी सांख्यिक प्रकार का शून्य, उदाहरण के लिए, 0, 0.0, 0j।

  • कोई खाली अनुक्रम, उदाहरण के लिए, '',(), []।

  • कोई खाली मैपिंग, उदाहरण के लिए, {}।

  • उपयोगकर्ता परिभाषित वर्गों के उदाहरण, यदि कक्षा __bool__() या __len__() विधि को परिभाषित करती है, तो वह विधि पूर्णांक शून्य या बूल मान को गलत करती है।

अन्य सभी मूल्यों को सत्य माना जाता है - इसलिए कई प्रकार की वस्तुएं हमेशा सत्य होती हैं।

2

यहां मुख्य बिंदु है, False एकमात्र मूल्य नहीं है जिसे गलत लगता है। एक खाली सेट भी इस स्थिति में झूठी के रूप में व्याख्या किया जाता है।

हालांकि, स्पष्ट समानता परीक्षण test == False नहीं सच है क्योंकि एक खाली सेट, परिभाषा के रूप में, प्रकार set है, जो एक बूलियन मान False के बराबर नहीं है की है।


Boolean Operations देखें:

बूलियन संचालन के संदर्भ में, और भी जब भाव नियंत्रण प्रवाह बयानों द्वारा किया जाता है, निम्न मान झूठे के रूप में व्याख्या कर रहे हैं: False, None, सभी का सांख्यिक शून्य प्रकार, और खाली तार और कंटेनर (तार, tuples, सूचियों, शब्दकोश, सेट और frozensets सहित)।अन्य सभी मूल्यों को सत्य के रूप में व्याख्या किया जाता है। उपयोगकर्ता परिभाषित वस्तुएं __bool__() विधि प्रदान करके अपने सत्य मूल्य को अनुकूलित कर सकती हैं।

संबंधित मुद्दे