关于Python运算符'is'的困惑

时间:2020-03-28 23:00:53

标签: python-3.x

Python console snapshot

'is'运算符在python中的定义:

is运算符检查两个操作数是否引用相同的对象 是否

然后,当a和list1 [0]的ID不匹配,第二个条件为True时怎么办?

1 个答案:

答案 0 :(得分:4)

在执行id(a) is id(list1[0])时,您正在做的事情是比较id()函数返回的值,以检查它们是否指向同一对象。 这些值是不同的对象-即使它们是相同的值

检查:

a = 2
ll = [2]

print(a is ll[0])
print(id(a), id(ll[0]))
print(id(a) is id(ll[0]))

哪个给:

True
140707131548528 140707131548528
False

现在为什么第一个结果为True?由于interning--5和256之间的所有整数都是可重复使用的预先创建的对象。因此,python中的每2个实际上是同一对象。但是每个140707131548528都不一样

相关问题