के बीच क्या अंतर है हाल ही में मैंने इस वाक्यविन्यास में आया, मुझे अंतर से अनजान है।"कोई नहीं है" और "== कोई नहीं"
अगर कोई मुझे अंतर बता सकता है तो मैं इसकी सराहना करता हूं।
के बीच क्या अंतर है हाल ही में मैंने इस वाक्यविन्यास में आया, मुझे अंतर से अनजान है।"कोई नहीं है" और "== कोई नहीं"
अगर कोई मुझे अंतर बता सकता है तो मैं इसकी सराहना करता हूं।
उत्तर here समझाया गया है।
के शब्दों में:
एक वर्ग तुलना किसी भी तरह से यह चुनता को लागू करने के लिए स्वतंत्र है, और यह कोई नहीं के खिलाफ तुलना कुछ (जो वास्तव में समझ में आता है मतलब बनाने के लिए चुन सकते हैं; अगर कोई तुमसे कहा था स्क्रैच से कोई भी ऑब्जेक्ट लागू नहीं करें, आप इसे पर कैसे प्राप्त करेंगे, इसके खिलाफ सच की तुलना करें?)।
व्यावहारिक रूप से बोलने से, कस्टम तुलना ऑपरेटर दुर्लभ होने के बाद बहुत अंतर नहीं है। लेकिन आपको सामान्य नियम के रूप में is None
का उपयोग करना चाहिए।
यह एक दिलचस्प (और छोटा) पढ़ा गया था। और कुछ उपयोगी जानकारी 'is' v। '== 'में है। –
इसके अलावा, 'कोई नहीं है' '== कोई नहीं '~ –
@NasBanov की तुलना में थोड़ा सा (~ 50%) तेज है क्या आपके पास यह लिंक है जहां आप इसे पढ़ते हैं? – myusuf3
इस मामले में, वे वही हैं। None
एक सिंगलटन ऑब्जेक्ट है (वहां केवल एक None
मौजूद है)।
is
यह देखने के लिए जांच करता है कि ऑब्जेक्ट एक ही वस्तु है, जबकि == बस जांचता है कि वे समकक्ष हैं या नहीं।
उदाहरण के लिए:
p = [1]
q = [1]
p is q # False because they are not the same actual object
p == q # True because they are equivalent
लेकिन वहाँ है, क्योंकि केवल एक None
, वे हमेशा एक ही हो जाएगा, और यह सच है is
वापस आ जाएगी।
p = None
q = None
p is q # True because they are both pointing to the same "None"
यह उत्तर सही नहीं है, जैसा कि बेन हॉफस्टीन के उत्तर में http://stackoverflow.com/questions/3257919/is-none-vs-none/3257957#3257957 के नीचे बताया गया है। 'x == कोई भी' True' का मूल्यांकन नहीं कर सकता है, भले ही 'x'' none' नहीं है, लेकिन कुछ क्लास का उदाहरण अपने स्वयं के कस्टम समानता ऑपरेटर के साथ है। – max
class Foo:
def __eq__(self,other):
return True
foo=Foo()
print(foo==None)
# True
print(foo is None)
# False
आप numpy उपयोग करते हैं,
if np.zeros(3)==None: pass
आप त्रुटि जब numpy elementwise तुलना
देखता दे देंगे [वहाँ == 'और' अजगर में is' के बीच 'अंतर है?] (http://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python/134659#134659) –
@ myusuf3: आप स्वीकार किए गए उत्तर को बदलने पर विचार करना चाहेंगे सही वाला। – max