相同的位置内存但结果为false(python)

时间:2018-05-08 08:55:06

标签: python python-3.x

我只是对python中的身份运算符,如何使用它以及身份运算符的工作方式感到困惑,我将举例说明:

var_1 = 10
print (id(var_1) is id(var_1))

结果是"错误" ,我不知道为什么会这样,有人可以用简单的方式解释一下?并解释id()函数的工作原理。

感谢' S

1 个答案:

答案 0 :(得分:0)

您对id()的使用是多余的,is运算符会获取两个对象并比较它们的地址,当您执行id(var_1)时,您正在创建一个具有值的无名变量id var_1然后您创建另一个无名变量,它将具有相同的值,但它不会相同id您可以通过打印id(id(var_1)和每次看到它都不同:

var_1 = 10
print id(id(var_1))
#18438008
print id(id(var_1))
#18438032
print id(id(var_1))
#18438056

如果您想查看对象是否相同,您需要执行id(var_1) == id(var_2)或按照建议:var_1 is var_2