广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Python技术 > 正文

Python的小整数池_惠州Python培训

作者:黄君发布时间:2020-12-21分类:Python技术浏览:1146


导读:在 Python 中,整数可以表示的范围很大,但是常用的整数可能都集中在 -1000 到 1000 之间,如考试分数,一般在 0 到 100 之间,年龄也在 0 到 100 之间。

在 Python 中,整数可以表示的范围很大,但是常用的整数可能都集中在 -1000 到 1000 之间,如考试分数,一般在 0 到 100 之间,年龄也在 0 到 100 之间。

基于整数对象分布不均匀的特性,我们可以做一些优化来提升运行效率。

在 Python 解释器的内部实现中,对于 -5 到 256 内的整数建立了一个小整数池。如果要使用的整数对象在该范围内,其不会自动新建一个整数对象,而是看小整数池中是否有值相同的整数对象:

  • 如果有,则返回这个现有的整数对象;

  • 如果没有,则创建一个新的整数对象,这个新建的整数对象在以后也可能被共享使用。


我们可以使用函数 id() 来查看对象的地址,在 CPython 中,id() 返回的就是某个对象在内存中的地址信息。我们可以比较这个 id 值来查看是否存在这种共享关系。另外也可以用 is 来检查两个对象是否相同。

>>> a = 12      # 创建对象a,值为12
>>> id(a)       # 查看a的id值
8791344854192
>>> b = 11      # 新建对象b,值为11
>>> id(b)       # 查看b的id值
8791344854160   # b的id和a的id是不同的,它们是不同的整数对象
>>> a is b      # 使用is来判断a和b是不是同一个整数对象
False           # 它们的确不是同一个整数对象
>>> b = b + 1   # 重新给b赋值
>>> b           # 查看b的值
12              # b的值和a的值相同,都为12
>>> id(b)       # 查看b现在的id值
8791344854192   # b的id发生了变化,现在和a相同了
>>> a is b      # 用is来检查a和b是否是同一个对象
True            # 它们的确是同一个对象


标签:惠州北大青鸟惠州JAVA培训惠州IT培训惠州软件培训惠州软件开发惠州Python培训


Python技术排行
标签列表
网站分类
文章归档
最近发表