四时宝库

程序员的知识宝库

在 Python 中如何使用 “is” 和 “==” 进行对象比较

Python 有两个用于相等比较的运算符,“is”和“==”(等于)。在本文中,我将通过一些简单的示例介绍两者之间的区别以及何时使用它们。

很多时候,我们在 Python 中做相等比较时,想知道应该使用“is”还是“==”进行检查。

Bash
# 使用“is”
if a is b:
    ...

# 使用“==”
if a == b:
    ...

如果你是 Python 初学者,这可能会有点令人困惑,并且很容易认为两者可以互换使用。那么,有什么区别呢?

is 运算符

is 运算符检查两个元素是否指向同一对象。

让我们在 python 控制台中举例说明。

Bash
>>> a = []
>>> b = []
>>> c = a
>>> a is b
False
>>> b is c
False
>>> a is c
True

我们声明了三个变量并为其赋值。并且都是赋值空列表,最终,我们可以看到所有三个变量都包含一个空列表。

尽管所有三个变量都包含一个空列表,看起来相同,但变量 a 和 b 不指向同一个对象,变量 a 和 c 指向同一个对象。实际上,is 运算符的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样。

Bash
>>> a = []
>>> b = []
>>> c = a
>>> id(a)
60540328
>>> id(b)
59352968
>>> id(c)
60540328
>>> 

变量 a 和 c 的标识符(内存中的地址)都是 60540328 ,变量 b 的标识符是 59352968。具有相同值的对象通常存储在不同的内存地址中。

== 运算符

== 运算符检查两个元素是否包含相等的值。它们是否指向同一对象在这里并不重要。

Bash
>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> b == c
True
>>> a == c
True

“is”称为标识运算符。“==”称为相等运算符。因此,如果要检查元素是否指向同一对象,请使用“is” 。如果只比较值是否相等,请使用“==”。

?

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

?

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接