理解 Python None 比较:“is”与 ==
Python 开发者在比较变量时经常遇到使用“is”还是 == 的问题没有。虽然这两个选项都会产生有效的语法,但首选方法取决于预期的比较。
关键区别在于比较:对象同一性或相等性。
None 的情况下,Python 中只有一个这样的对象。因此,my_var is None 检查 my_var 是否引用同一个 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中文网其他相关文章!