“是无”和“==无”之间的区别是什么?

“是无”和“==无”之间的区别是什么?

我最近遇到了这种语法,我不知道它的区别。

如果有人能告诉我差异,我将不胜感激。


POPMUISE
浏览 526回答 3
3回答

杨魅力

答案在这里解释。报价:一个类可以按照它选择的任何方式自由地实现比较,并且它可以选择与None进行比较意味着什么(实际上是有意义的;如果有人告诉你从头开始实现None对象,那么你怎么能得到它来比较True反对自己?)。实际上,由于自定义比较运算符很少,因此差别不大。但你应该is None作为一般规则使用。

不负相思意

class Foo:    def __eq__(self,other):        return Truefoo=Foo()print(foo==None)# Trueprint(foo is None)# False

慕盖茨4494581

在这种情况下,它们是相同的。None是一个单例对象(只存在一个None)。is 检查对象是否是同一个对象,而==只是检查它们是否相同。例如:p = [1]q = [1]p is q # False because they are not the same actual objectp == q # True because they are equivalent但由于只有一个None,它们将始终相同,is并将返回True。p = Noneq = Nonep is q # True because they are both pointing to the same "None"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python