Python:对象身份问题?

发布于 2024-08-25 04:34:22 字数 447 浏览 7 评论 0原文

可能的重复:
Python“is”运算符对整数的行为异常

>>>a=123
>>>b=123
>>>a is b
True
>>>id(a)==id(b)
True
My question is, why is id(a) the same as id(b)?.
Aren't they two different instances of class int?

Possible Duplicate:
Python “is” operator behaves unexpectedly with integers

>>>a=123
>>>b=123
>>>a is b
True
>>>id(a)==id(b)
True

My question is, why is id(a) the same as id(b)?.
Aren't they two different instances of class int?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

滥情空心 2024-09-01 04:34:22

通常,出于效率目的,小整数会引用内存中相同的缓存对象。

Usually small integers reference the same cached object in memory for efficiency purposes.

入怼 2024-09-01 04:34:22

int 被缓存。这是一个无关紧要的实现细节,因为 int 无论如何都是不可变的。

ints are cached. That is an implementation detail that shouldn't matter since ints are immutable anyway.

情域 2024-09-01 04:34:22

变量

a and b 

都是对对象 123 的引用,对象 123 的 id 是唯一的。

当您将相同的值123分配给两个差异变量ab时,

则将相同的对象123分配给这两个变量变量ab,但对该对象的引用计数在您的情况下增加,对象123的引用计数为

variables

a and b 

both are references to the object 123 whose id is unique.

when u assign same value 123 to two diff variables a and b,

then same object 123 is assigned to both variables a and b but reference count made to that object increases in your case refrecnce count for object 123 is two

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文