• <legend id='Efhe7'><style id='Efhe7'><dir id='Efhe7'><q id='Efhe7'></q></dir></style></legend>
  • <small id='Efhe7'></small><noframes id='Efhe7'>

      <bdo id='Efhe7'></bdo><ul id='Efhe7'></ul>

      <tfoot id='Efhe7'></tfoot>

        <i id='Efhe7'><tr id='Efhe7'><dt id='Efhe7'><q id='Efhe7'><span id='Efhe7'><b id='Efhe7'><form id='Efhe7'><ins id='Efhe7'></ins><ul id='Efhe7'></ul><sub id='Efhe7'></sub></form><legend id='Efhe7'></legend><bdo id='Efhe7'><pre id='Efhe7'><center id='Efhe7'></center></pre></bdo></b><th id='Efhe7'></th></span></q></dt></tr></i><div id='Efhe7'><tfoot id='Efhe7'></tfoot><dl id='Efhe7'><fieldset id='Efhe7'></fieldset></dl></div>

        来自 sys.getrefcount 的意外结果

        Unexpected result from sys.getrefcount(来自 sys.getrefcount 的意外结果)
            <bdo id='l9R4l'></bdo><ul id='l9R4l'></ul>

              <i id='l9R4l'><tr id='l9R4l'><dt id='l9R4l'><q id='l9R4l'><span id='l9R4l'><b id='l9R4l'><form id='l9R4l'><ins id='l9R4l'></ins><ul id='l9R4l'></ul><sub id='l9R4l'></sub></form><legend id='l9R4l'></legend><bdo id='l9R4l'><pre id='l9R4l'><center id='l9R4l'></center></pre></bdo></b><th id='l9R4l'></th></span></q></dt></tr></i><div id='l9R4l'><tfoot id='l9R4l'></tfoot><dl id='l9R4l'><fieldset id='l9R4l'></fieldset></dl></div>
                <tbody id='l9R4l'></tbody>
              • <legend id='l9R4l'><style id='l9R4l'><dir id='l9R4l'><q id='l9R4l'></q></dir></style></legend>

                1. <tfoot id='l9R4l'></tfoot>

                  <small id='l9R4l'></small><noframes id='l9R4l'>

                  本文介绍了来自 sys.getrefcount 的意外结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  当我输入时:

                  >>> astrd = 123
                  >>> import sys
                  >>> sys.getrefcount(astrd)
                  3
                  >>> 
                  

                  我不知道 astrd 在哪里使用了 3 次?

                  I am not getting where is astrd used 3 times ?

                  推荐答案

                  被引用3次的不是astrd,而是值123.astrd 只是(不可变)数字 123 的名称,可以多次引用.除此之外,通常共享小整数:

                  It's not astrd that is referenced three times, but the value 123. astrd is simply a name for the (immutable) number 123, which can be referenced however many times. Additionally to that, small integers are usually shared:

                  >>> astrd = 123
                  >>> sys.getrefcount(astrd)
                  4
                  >>> j = 123
                  >>> sys.getrefcount(astrd)
                  5
                  

                  在第二个赋值中,没有创建新的整数,而是 j 只是整数 123 的新名称.

                  In the second assignment, no new integer is created, instead j is just a new name for the integer 123.

                  但是,给定非常大的整数,这不成立:

                  However, given very large integers, this does not hold:

                  >>> i = 823423442583
                  >>> sys.getrefcount(i)
                  2
                  >>> j = 823423442583
                  >>> sys.getrefcount(i)
                  2
                  

                  共享整数是 CPython(以及其他)的一个实现细节.由于小整数经常被实例化,共享它们可以节省大量内存.这是因为整数是不可变的.

                  Shared integers are an implementation detail of CPython (among others). Since small integers are instantiated very often, sharing them saves a lot of memory. This is made possible by the fact that integers are immutable in the first place.

                  有关第二个示例中的附加参考,请参阅.codeape 的回答.

                  For the additional reference in the second example, cf. codeape's answer.

                  这篇关于来自 sys.getrefcount 的意外结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  env: python: No such file or directory(env: python: 没有这样的文件或目录)
                  How to evaluate environment variables into a string in Python?(如何在 Python 中将环境变量评估为字符串?)
                  Python - temporarily modify the current process#39;s environment(Python - 临时修改当前进程的环境)
                  Change current process environment#39;s LD_LIBRARY_PATH(更改当前进程环境的 LD_LIBRARY_PATH)
                  Reading and writing environment variables in Python?(在 Python 中读写环境变量?)
                  When to use sys.path.append and when modifying %PYTHONPATH% is enough(何时使用 sys.path.append 以及何时修改 %PYTHONPATH% 就足够了)
                2. <small id='3QwRA'></small><noframes id='3QwRA'>

                    <bdo id='3QwRA'></bdo><ul id='3QwRA'></ul>

                        <tbody id='3QwRA'></tbody>
                      <legend id='3QwRA'><style id='3QwRA'><dir id='3QwRA'><q id='3QwRA'></q></dir></style></legend>

                            <tfoot id='3QwRA'></tfoot>
                            <i id='3QwRA'><tr id='3QwRA'><dt id='3QwRA'><q id='3QwRA'><span id='3QwRA'><b id='3QwRA'><form id='3QwRA'><ins id='3QwRA'></ins><ul id='3QwRA'></ul><sub id='3QwRA'></sub></form><legend id='3QwRA'></legend><bdo id='3QwRA'><pre id='3QwRA'><center id='3QwRA'></center></pre></bdo></b><th id='3QwRA'></th></span></q></dt></tr></i><div id='3QwRA'><tfoot id='3QwRA'></tfoot><dl id='3QwRA'><fieldset id='3QwRA'></fieldset></dl></div>