当数字较大时,e和f只是值相等 不指向同一块内存空间

当数字较大时,e和f只是值相等 不指向同一块内存空间

e=999999999

f=999999999

当数字较大时,e和f只是值相等 不指向同一块内存空间

问题1:这里说的数字较大的界定是多少

问题2:居然数字都较大了在一块内存空间不是更节约资源吗?为什么还要再开辟一块内存空间呢


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

登陆购买课程后可参与讨论,去登陆

1回答
好帮手乔木 2019-10-08 15:19:39

同学你好:

整数对象缓存池

对于【-5,256】中的小整数,系统已经提前分配好了,可以直接拿来用,而对于其他的大整数,python会在内存池中为其分配一块小于256k大小的内存。这样,对于小整数,我们每次的引用都是引用的同一个对象,他们的内存地址是一样的,而对于大整数,每次赋值引用都是引用的不同的对象,他们的内存地址不一样。

关于为什么小的数字有缓冲池:如果单独为一个小整数创建一个对象,10个地方用到这个小整数,那么就会在内存中创建10个存储的内存地址的空间,地址占用的数据长度比数据本身还大这样非常不划算。而有这个缓存池,python解释器内部就会共享这个小整数对象,不去开内存空间。从而减少内存的使用率,降低浪费。如果对大的数字开辟缓存池,又会造成浪费(数字是无穷无尽的,无法确定值的范围)。

如果我解决了同学的问题,请采纳!学习愉快^_^。


  • 提问者 媛猿 #1
    问题2我还是不太明白,大数为什么不像小数一样开辟内存池呢
    2019-10-08 16:08:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师