我最近遇到了这种语法,但我没有意识到两者之间的区别。
如果有人可以告诉我与众不同,我将不胜感激。
一个类可以自由选择以任何方式实现比较,并且可以选择与None进行比较意味着某种意义(这实际上是有道理的;如果有人告诉你从头开始实现None对象,那么你将如何获得它来比较True?反对自己?)。
实际上,由于自定义比较运算符很少见,因此差异不大。但是你应该使用is None一般规则。
is None一
lass Foo: def __eq__(self,other): return True foo=Foo() print(foo==None) # True print(foo is None) # False