On Sat, 01 Mar 2014 19:29:41 +0200, Marko Rauhamaa wrote: > Michael Torrie <torr...@gmail.com>: > >> No, '==' works fine no matter what objects you assign to your state >> variables. > > Well, it doesn't since > > >>> a = float("nan") > >>> a is a > True > >>> a == a > False
No, that is working correctly, so the comment that equals works fine is correct: returning False is the correct thing to do if one or both of the objects are a NAN. NANs are supposed to compare unequal to everything, including themselves. The is operator and the == operator do not have the same purpose and they do not do the same thing. "is" should not be considered an improved == without the quirks, this is not PHP and we're not comparing == and ===. The argument here is not about which operator performs the check we want, but over what check we want: do we want an identity test or an equality test? -- Steven D'Aprano http://import-that.dreamwidth.org/ -- https://mail.python.org/mailman/listinfo/python-list