首页 >后端开发 >Python教程 >为什么在 Python 中'is None”比'== None”更受欢迎?

为什么在 Python 中'is None”比'== None”更受欢迎?

Barbara Streisand
Barbara Streisand原创
2024-11-12 20:29:01211浏览

Why is

理解 Python None 比较:“is”与 ==

Python 开发者在比较变量时经常遇到使用“is”还是 == 的问题没有。虽然这两个选项都会产生有效的语法,但首选方法取决于预期的比较。

对象标识与平等

关键区别在于比较:对象同一性或相等性。

  • 对象同一性(is):比较两个变量是否引用完全相同的对象
  • 相等(==):比较两个对象的值。

None 的情况下,Python 中只有一个这样的对象。因此,my_var is None 检查 my_var 是否引用同一个 None 对象。

为什么首选 None?

虽然两者都是 None 且 == None是有效的语法,is None 被认为更明确并且更不容易出错。

考虑以下内容情况:

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

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False

在此示例中,Negator 类重写 == 运算符以始终返回参数的相反值。结果, thing == None 计算结果为 True,表示值相等。然而,thing is None 正确地计算为 False,表明 thing 和 None 不是同一个对象。

结论

用于检查对象身份,包括与没有,这是首选方法。它确保清晰度并防止因覆盖相等运算符而引起的潜在歧义。请记住, 是 检查身份,而 == 检查相等性。

以上是为什么在 Python 中'is None”比'== None”更受欢迎?的详细内容。更多信息请关注PHP中文网其他相关文章!

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