在一篇关于this question的 comments 中,我看到了一条建议使用

result is not None

vs

result != None

我想知道有什么区别,为什么一个会被推荐而不是另一个?

推荐答案

==equality test.它判断右侧和左侧是否是相等的对象(根据它们的__eq____cmp__方法)

isidentity test.它判断右手侧和左手侧是否是同一个对象.没有方法调用,对象不会影响is操作.

使用is(和is not)表示单例,如None,在这种情况下,您不关心可能想要伪装成None的对象,也不关心与None进行比较时要防止对象损坏的对象.

Python相关问答推荐

图像 pyramid .难以创建所需的合成图像

使用groupby Pandas的一些操作

Python键入协议默认值

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

如果条件不满足,我如何获得掩码的第一个索引并获得None?

将9个3x3矩阵按特定顺序排列成9x9矩阵

在vscode上使用Python虚拟环境时((env))

部分视图的DataFrame

移动条情节旁边的半小提琴情节在海运

未知依赖项pin—1阻止conda安装""

isinstance()在使用dill.dump和dill.load后,对列表中包含的对象失败

合并帧,但不按合并键排序

如何使用Numpy. stracards重新编写滚动和?

Gunicorn无法启动Flask应用,因为无法将应用解析为属性名或函数调用.'"'' "

在round函数中使用列值

使用美汤对维基百科表格进行网络刮擦未返回任何内容

对包含JSON列的DataFrame进行分组

使用元组扩展字典的产品挑战

Python键盘模块不会立即检测到按键

使用Python下载pdf url