首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“sys.getrefcount()”返回值

“sys.getrefcount()”返回值
EN

Stack Overflow用户
提问于 2011-09-25 16:13:51
回答 3查看 3.2K关注 0票数 5

为什么

代码语言:js
复制
sys.getrefcount()

对于每个大数字或简单字符串返回3?这是否意味着3个对象驻留在程序中的某个地方?另外,为什么设置x=(非常大的数字)不会增加该对象的引用计数?这3个引用计数是由我调用getrefcount产生的吗?谢谢你澄清这一点。

例如:

代码语言:javascript
复制
>>> sys.getrefcount(4234234555)
3
>>> sys.getrefcount("testing")
3
>>> sys.getrefcount(11111111111111111)
3
>>> x=11111111111111111
>>> sys.getrefcount(11111111111111111)
3
EN

Stack Overflow用户

发布于 2021-02-25 23:09:38

似乎当您将一个直接数作为参数传递给sys.getrefcount时,您有3个引用:

  • 对象本身为1(逻辑);
  • 1(临时)表示作为参数传递给sys.getrefcount的对象;
  • 我假设解释器为1(临时),我认为它将原始数字(或字符串或其他任何内容)转换为可解释的对象。

例如,让我们考虑一下:

代码语言:javascript
复制
>>> sys.getrefcount(123456)
3

>>> a = 123456
>>> sys.getrefcount(a)
2

我真的不知道Python的想法是什么,但它仍然很有趣。我只能猜测原始整数(ref #1)被临时转换成一个int对象(ref #2),然后作为参数传递给sys.getrefcount (ref #3)。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7544395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档