为什么Python中的变量在来回转换后会返回到原来的ID?

2024-04-25 09:53:23 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能解释一下为什么我的变量x在执行以下步骤后返回到原来的ID:

>>> x = 10
>>> id(x)
497834400
>>> x = str(x)
>>> id(x)
48840576
>>> x = int(x)
>>> id(x)
497834400

Tags: id步骤intstr
3条回答
What is the number returned from the function id() ?

它是“一个整数(或长整数),保证在对象的生命周期内是唯一的和不变的。”(Python标准库-内置函数)一个唯一的数字。没有更多,也没有更少。可以将其视为Python对象的社会保险号或员工id号。你知道吗

Is it the same with memory addresses in C ?

从概念上说,是的,因为他们都保证在他们的宇宙中是独一无二的一生。在Python的一个特定实现中,它实际上是对应C对象的内存地址。你知道吗

what-does-id-function-used-for

Python缓存来自[-5, 256]的整数,这意味着(在同一运行时)上述范围内的整数将始终具有相同的id。你知道吗

看到这个question和它的伟大answer的更多细节。你知道吗

因为10在python中被称为小整数。Python将[-5257)之间的小整数缓存在一个名为“small\u ints”的池中。所以[-5257)中的integer实例在整个python中都是共享的,这就是id(10)总是返回相同地址的原因。你知道吗

相关问题 更多 >