一尘不染

Python-“ is None”和“ == None”有什么区别?

python

我最近遇到了这种语法,但我没有意识到两者之间的区别。

如果有人可以告诉我与众不同,我将不胜感激。


阅读 2108

收藏
2020-02-21

共2个答案

一尘不染

一个类可以自由选择以任何方式实现比较,并且可以选择与None进行比较意味着某种意义(这实际上是有道理的;如果有人告诉你从头开始实现None对象,那么你将如何获得它来比较True?反对自己?)。

实际上,由于自定义比较运算符很少见,因此差异不大。但是你应该使用is None一般规则。

2020-02-21
一尘不染

lass Foo:
    def __eq__(self,other):
        return True
foo=Foo()

print(foo==None)
# True

print(foo is None)
# False
2020-02-21