2024-04-25 09:53:23 发布
网友
有人能解释一下为什么我的变量x在执行以下步骤后返回到原来的ID:
>>> x = 10 >>> id(x) 497834400 >>> x = str(x) >>> id(x) 48840576 >>> x = int(x) >>> id(x) 497834400
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。你知道吗
[-5, 256]
id
看到这个question和它的伟大answer的更多细节。你知道吗
因为10在python中被称为小整数。Python将[-5257)之间的小整数缓存在一个名为“small\u ints”的池中。所以[-5257)中的integer实例在整个python中都是共享的,这就是id(10)总是返回相同地址的原因。你知道吗
它是“一个整数(或长整数),保证在对象的生命周期内是唯一的和不变的。”(Python标准库-内置函数)一个唯一的数字。没有更多,也没有更少。可以将其视为Python对象的社会保险号或员工id号。你知道吗
从概念上说,是的,因为他们都保证在他们的宇宙中是独一无二的一生。在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)总是返回相同地址的原因。你知道吗
相关问题 更多 >
编程相关推荐