首页 >后端开发 >Python教程 >Python 无比较:您应该使用'is”还是'==”?

Python 无比较:您应该使用'is”还是'==”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 16:38:021049浏览

Python None Comparisons: Should You Use

Python 无比较:应该使用“is”还是 ==?

在 Python 中,将变量与使用 == 时 None ,而使用 is 时不会发出警告。两种语法都有效,但通常首选使用 my_var is None。

为什么 None 检查首选“is”?

is 和 is 之间的主要区别==在于他们的目的。 == 检查相等性,而 is 检查对象同一性。在将变量与 None 进行比较的情况下,我们想要确定该变量是否是 None 对象,而不仅仅是一个与其等效的对象。

None 是 Python 中唯一的对象,这意味着只有其中一个例子。当您使用 my_var is None 时,您正在检查 my_var 和 None 是否是同一对象。此检查比使用 my_var == None 更具体、更可靠。

平等与身份

为了说明差异,请考虑自定义类 Negator:

如果创建 Negator 的实例并将其与 None 进行比较,您将得到:

thing == None 返回 True,因为 Negator 类覆盖了 eq 与除自身以外的任何其他值进行比较时始终返回 True 的方法。然而,thing is None 返回 False,因为这两个对象不是同一个对象。

结论

对于 None 检查,一般首选使用 my_var is None 来确保您专门检查 None 对象。当您想要检查相等性时可以使用 == ,但请记住,在处理重写比较方法的自定义类时,这可能不可靠。

以上是Python 无比较:您应该使用'is”还是'==”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn