Python之is与==的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之is与==的区别相关的知识,希望对你有一定的参考价值。

首先看几个例子:

# -*-coding=utf-8 -*-
a="Hello Python"
b="Hello Python"
print (a is b)    #结果是:True
print (a == b)    #结果是:True
a=[1,2,3]
b=[1,2,3]
print (a is b)    #结果是:False
print (a == b)    #结果是:True
a=[1,2,3]
b=a
print (a is b)    #结果是:True
print (a == b)    #结果是:True

运行结果:

True
True
False
True
True
True

is     表示同一性测试

==  表示比较

程序在查检a is b时,表示id(a)==id(b),而检查a==b时,调用对象__eq__()方法,相当于a.__eq__(b)

a="Hello Python"
b="Hello Python"
print (id(a),id(b))
a=[1,2,3]
b=[1,2,3]
print (id(a),id(b))
a=[1,2,3]
b=a
print (id(a),id(b))

运行结果:

(82999696L, 82999696L)
(83640456L, 83756168L)
(83757576L, 83757576L)


以上是关于Python之is与==的区别的主要内容,如果未能解决你的问题,请参考以下文章

Error: Python executable “H:devpython3.10python.EXE“ is v3.10.0, which is not supported by gyp.(代码片段

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段

Python— is与=区别

python中==和is的联系与区别

python的is与==的区别

Python 中 "is" 与 "==" 操作有什么区别?