请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于小整数

老师,视频里说,只有小整数 [-5,256]才会使用intern机制,那我使用 1000000000000,为什么也是使用同一个内存空间呢?

a = 1000000000000

b = 1000000000000

print (id(a)==id(b)) # True

print(a is b) # True


正在回答 回答被采纳积分+3

5回答

夜里等天明 2019-07-15 10:30:21
~ python3.6
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = "abcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrst"
>>> b = "abcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrst"
>>> a is b
True

你好,Bobby老师,关于字符串我在交互环境测试了一下  发现很长的字符串只要相等,他们的就是指向的同一个对象

1 回复 有任何疑惑可以回复我~
  • bobby #1
    https://blog.csdn.net/u012145252/article/details/79763063 你可以看看这篇文章
    回复 有任何疑惑可以回复我~ 2019-07-15 14:00:19
  • 好的,谢谢老师解答
    回复 有任何疑惑可以回复我~ 2019-07-16 14:27:12
慕村3371505 2021-05-30 19:43:42

https://img1.sycdn.imooc.com//szimg/60b37a240853254910221316.jpg

https://img1.sycdn.imooc.com//szimg/60b37a2408f91b7610481330.jpg

在不同的文件下运行结果就不一样

0 回复 有任何疑惑可以回复我~
bobby 2018-04-19 17:43:29
小整数池

整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,
所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。

大整数池

终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以
 这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。c1 和d1 处于一个代码块,而c1.b和c2.b分别有自己的代码块,所以不相等。


0 回复 有任何疑惑可以回复我~
  • 你好,Bobby老师,关于字符串我在交互环境测试了一下
    ```
    ~ python3.6
    Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = "abcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrst"
    >>> b = "abcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrstabcefghigklnmopqrst"
    >>> a is b
    True
    ```
    发现很长的字符串只要相等,他们的就是指向的同一个对象
    回复 有任何疑惑可以回复我~ 2019-07-15 10:29:11
提问者 xmzls 2018-04-18 08:42:29

使用python test.py的方式执行也是True,那这个小整数的意义是什么呢?

0 回复 有任何疑惑可以回复我~
提问者 xmzls 2018-04-18 08:38:43

IDE是True,在交互环境是False

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信