id
。a = 10
b = 10
a is b
>>> True
如果我拿两个列表:
a = [1, 2, 3]
b = [1, 2, 3]
a is b
>>> False
根据Senderle的回答,不可变对象引用具有相同的id,而可变对象(如列表)具有不同的id。
所以现在根据他的回答,元组应该具有相同的id - 这意味着:
a = (1, 2, 3)
b = (1, 2, 3)
a is b
>>> False
理想情况下,由于元组是不可变的,它应该返回True,但它却返回了False!这是什么解释?
is
会返回True
,而有时候不会。如果你想确保它返回True
,只需执行以下操作:b = a
或b = tuple(a)
(如果将元组作为参数传递给tuple
调用,则会返回对该参数的引用)。 - Bakuriu