ri7ki 发表于 2023-4-25 22:06:42

python 序列id

求助各位大佬:为什么这两id是一样的?

sfqxx 发表于 2023-4-25 22:12:50

在python中,整数等不可变类型的对象的`id()`只与该对象的值有关。当你将`t`赋值为`t*2`时,由于`t`是一个整数,所以会创建一个新的整数对象,但是由于之前已经存在占用了相同内存地址的对象,所以该对象此时被回收并可以用于存储新的整数对象。

因此在上述代码中,尽管`t`的值在第二次赋值后变为7,但它仍然与原始对象具有相同的`id()`,这表明它们存储在相同的内存位置上,而不是在完全不同的位置上。
有用请设置最佳答案

isdkz 发表于 2023-4-26 11:35:24

本帖最后由 isdkz 于 2023-4-26 11:38 编辑

这东西取决于python内部的运行机制,不用太深究,归根结底就是在做效率上的优化



你在 python shell 中执行就会发现 python shell 中的结果跟 idle shell 中的结果又不一样,所以研究这个没有意义

你看我的重新赋值同一个元组字面量之后,两个变量的 id 也是一样的,而你那里却不一样
页: [1]
查看完整版本: python 序列id