Python 无比较:'是”还是==?

Mary-Kate Olsen
发布: 2024-11-13 02:51:02
原创
627 人浏览过

Python None Comparison:

Python None 比较:“is”或 ==?

将变量与 None 进行比较是 Python 中的常见操作。不过,您可能已经注意到所使用的语法存在差异,从而导致了使用“is”还是==的问题。

一般情况下,在将变量与 None 进行比较时,建议使用“is” 。原因是“is”检查对象身份,而 == 检查对象相等性。在 Python 中,只有一个 None 对象,因此使用“is”将任何内容与 None 进行比较,如果它们是同一对象,则始终返回 True。

另一方面,== 检查对象是否相等。这意味着如果两个对象相等,即使它们不是同一个对象,它也会返回 True。例如,请考虑以下代码:

class Negator(object):
    def __eq__(self, other):
        return not other

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False
登录后复制

在此示例中,Negator 类定义了一个 eq 方法,当对象不相等时该方法返回 True。当使用 == 将 thing 与 None 进行比较时,会调用自定义 eq 方法,结果为 True。然而,当使用 is 进行比较时,我们发现它们不是同一个对象,导致 False。

因此,如果你严格检查一个对象是否与 None 相同(即检查是否为 null),推荐使用“是”。但是,如果您要检查相等性(即检查两个对象是否具有相同的值),则应该使用 ==.

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板