2012-05-03 9 views
7

मुझे कुछ पायथन लिखते हुए आज एहसास हुआ कि कोई असमानता ऑपरेटर a!=b या not a==b के रूप में लिख सकता है। यह मुझे उत्सुक मिला:पायथन असमानताओं:! = बनाम नहीं ==

  1. क्या दोनों तरीके बिल्कुल वही व्यवहार करते हैं, या क्या कुछ सूक्ष्म मतभेद हैं?
  2. क्या एक दूसरे का उपयोग करने का कोई कारण है? क्या एक दूसरे से अधिक सामान्य रूप से उपयोग किया जाता है?

उत्तर

14
  1. ==__eq__() invokes। != यदि यह मौजूद है तो __ne__() को आमंत्रित करता है, अन्यथा not == के बराबर है।
  2. जब तक कि 1 मामलों में अंतर न हो।
7

अपने ब्रांड्स के बारे में सावधान रहें।

>>> not "test" == True 
True 
>>> not "test" and True 
False 

==not पर पूर्वता लेता है। लेकिन not और and ही पूर्वता है, तो

Python Operators Precedence

+0

आपको यकीन है? 'नहीं' परीक्षण '== ट्रू' सही पर मूल्यांकन करता है, जबकि '(नहीं' परीक्षण ') == ट्रू' गलत का मूल्यांकन करता है, इसलिए ऐसा लगता है कि '== बी' का मूल्यांकन' नहीं (ए == बी) '। –

+0

मैं उपयोग कर रहा था और जब मैं कथन के साथ खेल रहा था। – JustinDanielson

+0

यह उत्तर सही नहीं है == True' – Alain