सारांश:
का प्रयोग करें is
जब आप एक वस्तु के खिलाफ जाँच करना चाहते पहचान (अगर देखने के लिए जाँच जैसे var
है None
)। ==
जब आप समानता की जांच करना चाहते हैं (उदाहरण के लिए) का उपयोग करेंvar
के बराबर 3
?)।
स्पष्टीकरण:
आपके पास कस्टम कक्षाएं हो सकती हैं जहां my_var == None
वापस आ जाएगीTrue
उदाहरण के लिए:
class Negator(object):
def __eq__(self,other):
return not other
thing = Negator()
print thing == None #True
print thing is None #False
is
वस्तु पहचान के लिए जाँच । केवल 1 ऑब्जेक्ट है None
, इसलिए जब आप ऐसा करते हैं my_var is None
, तो आप जाँच रहे हैं कि क्या वे वास्तव में एक ही ऑब्जेक्ट हैं (न केवल समतुल्य हैं वस्तुएं)
दूसरे शब्दों में, ==
समतुल्यता के लिए एक जाँच है (जो वस्तु से वस्तु पर परिभाषित की गई है) जबकि is
वस्तु पहचान के लिए जाँच:
lst = [1,2,3]
lst == lst[:] # This is True since the lists are "equivalent"
lst is lst[:] # This is False since they're actually different objects
is
- python.org/dev/peps/pep-0008/#programming-recommendations