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

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

    <tfoot id='TZZqM'></tfoot>

      1. “是"运算符对整数的行为异常

        时间:2023-09-11
        <i id='b2eDI'><tr id='b2eDI'><dt id='b2eDI'><q id='b2eDI'><span id='b2eDI'><b id='b2eDI'><form id='b2eDI'><ins id='b2eDI'></ins><ul id='b2eDI'></ul><sub id='b2eDI'></sub></form><legend id='b2eDI'></legend><bdo id='b2eDI'><pre id='b2eDI'><center id='b2eDI'></center></pre></bdo></b><th id='b2eDI'></th></span></q></dt></tr></i><div id='b2eDI'><tfoot id='b2eDI'></tfoot><dl id='b2eDI'><fieldset id='b2eDI'></fieldset></dl></div>
          <bdo id='b2eDI'></bdo><ul id='b2eDI'></ul>

          <tfoot id='b2eDI'></tfoot>
            <tbody id='b2eDI'></tbody>
            <legend id='b2eDI'><style id='b2eDI'><dir id='b2eDI'><q id='b2eDI'></q></dir></style></legend>

                1. <small id='b2eDI'></small><noframes id='b2eDI'>

                2. 本文介绍了“是"运算符对整数的行为异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  为什么在 Python 中出现以下异常行为?

                  Why does the following behave unexpectedly in Python?

                  >>> a = 256
                  >>> b = 256
                  >>> a is b
                  True           # This is an expected result
                  >>> a = 257
                  >>> b = 257
                  >>> a is b
                  False          # What happened here? Why is this False?
                  >>> 257 is 257
                  True           # Yet the literal numbers compare properly
                  

                  我使用的是 Python 2.5.2.尝试一些不同版本的 Python,似乎 Python 2.3.3 显示了 99 到 100 之间的上述行为.

                  I am using Python 2.5.2. Trying some different versions of Python, it appears that Python 2.3.3 shows the above behaviour between 99 and 100.

                  基于上述,我可以假设 Python 是在内部实现的,因此小"整数的存储方式与较大的整数不同,is 运算符可以区分.为什么有泄漏的抽象?当我事先不知道它们是否是数字时,比较两个任意对象以查看它们是否相同,有什么更好的方法?

                  Based on the above, I can hypothesize that Python is internally implemented such that "small" integers are stored in a different way than larger integers and the is operator can tell the difference. Why the leaky abstraction? What is a better way of comparing two arbitrary objects to see whether they are the same when I don't know in advance whether they are numbers or not?

                  推荐答案

                  看看这个:

                  >>> a = 256
                  >>> b = 256
                  >>> id(a)
                  9987148
                  >>> id(b)
                  9987148
                  >>> a = 257
                  >>> b = 257
                  >>> id(a)
                  11662816
                  >>> id(b)
                  11662828
                  

                  这是我在 Python 2 文档中找到的内容,"Plain Integer Objects"(对于 Python 3 也是一样):

                  Here's what I found in the Python 2 documentation, "Plain Integer Objects" (It's the same for Python 3):

                  当前的实现保留了一个所有人的整数对象数组-5 到 256 之间的整数,当你在该范围内创建一个 int实际上只是取回参考现有的对象.所以应该是可以改变 1 的值.我怀疑 Python 在这种情况是未定义的.:-)

                  The current implementation keeps an array of integer objects for all integers between -5 and 256, when you create an int in that range you actually just get back a reference to the existing object. So it should be possible to change the value of 1. I suspect the behaviour of Python in this case is undefined. :-)

                  这篇关于“是"运算符对整数的行为异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何隐藏从 Python 调度的 COM 对象 下一篇:如何在不使用 try/except 的情况下检查字符串是否

                  相关文章

                  最新文章

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

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

                    2. <legend id='QFV3t'><style id='QFV3t'><dir id='QFV3t'><q id='QFV3t'></q></dir></style></legend>