>  Q&A  >  본문

c - 为什么python中值相等的两个变量会指向同一个内存地址?

http://www.cnblogs.com/lolein... 下面是这个文章里面所演示的代码,

>>> a=1
>>> b=1
>>> id(a)
40650152
>>> id(b)
40650152
>>> a=2
>>> id(a)
40650140

我有点费解的就是,按道理a和b完全就不是同一个变量,那么理论上他们无论值是什么,都应该是放在两个不同的内存空间啊,为什么他们相等的时候就放在了同一个内存空间呢?难道是python的运行时环境会自动判断他们的值,如果相同就放到同一个内存空间,为的是节省内存占用吗?

天蓬老师天蓬老师2741일 전495

모든 응답(3)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-18 10:36:11

    Python은 int를 구현할 때 작은 정수 풀을 갖습니다. 효율성을 위해 Python은 먼저 내부적으로 이러한 정수를 생성한 다음 정수의 이 부분을 재사용하여 값이 1인 int를 생성합니다. 실제로 이 풀에서 직접 1을 가져옵니다.
    일반적으로 -5~257입니다. 1,000, 500 등을 구해서 확인해 보세요. 더 이상은 그렇지 않습니다.
    이것을 보세요:
    Python 정수 객체 구현

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 10:36:11

    성능 최적화를 위해 상수 풀이 사용됩니다. 그리고 이것은 파이썬에만 국한된 것이 아니며, 다른 많은 언어에서도 비슷한 기술을 사용합니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 10:36:11

    https://github.com/python/cpy...

    회신하다
    0
  • 취소회신하다