面试题答案
一键面试- 区别:
==
:比较的是两个对象的值是否相等。它会调用对象的__eq__
方法来进行值的比较。is
:比较的是两个对象的身份标识(内存地址)是否相同,即判断它们是否是同一个对象。
- 实际场景:
- 优先选择
==
的场景:- 当我们只关心对象的值是否相等时,比如比较两个字符串的值、两个数字的值等。例如:
- 优先选择
a = "hello"
b = "hello"
print(a == b)
这里我们只关心a
和b
所代表的字符串内容是否一样,所以用==
。
- 优先选择
is
的场景:- 当我们需要判断两个变量是否指向同一个对象时,例如在检查某个对象是否为
None
时。
- 当我们需要判断两个变量是否指向同一个对象时,例如在检查某个对象是否为
a = None
if a is None:
print("a is None")
这里is None
用来判断a
是否指向None
这个特殊对象,而不是比较值。