Python id(obj), ==, is 三者之间的区别

不多说,直接上代码,看看三者的区别吧。

代码:

# 例子
a = [1, 2, 3]
b=a;
print(a)
print(b)
print(a is b)
print(b is a)
print(b==a)
print(id(a)==id(b))
print(a[:])
b=a[:]
print(b==a)
print(a is b)

查看一下输出结果:

[1, 2, 3]
[1, 2, 3]
True
True
True
True
[1, 2, 3]
True
False

通过结果,比对一下三者之间的区别。

比较id(obj), ==, is

符 号 描述 实例
id 获取的是对象在内存的地址 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is is 和is not 都是Python身份运算符,身份运算符用于比较两个对象的存储单元。is 是判断两个标识符是不是引用自一个对象。 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False, 即判断2个变量是否指向同一个对象。
== ==是Python比较运算符,用于比对2个变量的具体值是否相等 即通过地址(id)指向的内存中的具体值 ,比如a=10,b=20,(a == b) 返回 False。

注意:

每一个类型只有一个类型对象。例如 type(100) ==type(0) ==type(2340)

总结:

  • 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
  • id(obj)用于获取对象内存地址是否是同一个。

猜你喜欢

转载自blog.csdn.net/ljx1400052550/article/details/106215132