1.小整数对象池

整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。

Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,

所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。

In [1]: a=-5In [2]: b=-5In [3]: a is b
Out[3]: TrueIn [4]: a=256In [5]: b=256In [6]: a is b
Out[6]: TrueIn [7]: a=1000In [8]: b=1000In [9]: a is b
Out[9]: False

intern机制处理空格一个单词的复用机会大,所以创建一次,有空格创建多次,但是字符串长度大于20,就不是创建一次了。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [13]: a="abc"In [14]: b="abc"In [15]: a is b
Out[15]: TrueIn [16]: a="helloworld"In [17]: b="helloworld"In [18]: a is b
Out[18]: TrueIn [19]: a="hello world"In [20]: b="hello world"In [21]: a is b
Out[21]: False
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s1 = "abcd"
s2 = "abcd"
print(s1 is s2)s1 = "a" * 20
s2 = "a" * 20
print(s1 is s2)s1 = "a" * 21
s2 = "a" * 21
print(s1 is s2)s1 = "ab" * 10
s2 = "ab" * 10
print(s1 is s2)s1 = "ab" * 11
s2 = "ab" * 11
print(s1 is s2)
# True
# True
# False
# True
# False

2.大整数对象池。

说明:终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以

这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。c1 和d1 处于一个代码块,而c1.b和c2.b分别有自己的代码块,所以不相等。

C1.b is C2.b

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [22]: a=1000In [23]: b=1000In [24]: a is b
Out[24]: FalseIn [25]: a=-1888In [26]: b=-1888In [27]: a is b
Out[27]: FalseIn [28]:
c1 = 1000
d1 = 1000
print(c1 is d1)  # Trueclass C1(object):a = 100b = 100c = 1000d = 1000class C2(object):a = 100b = 1000print(C1.a is C1.b)  # True
print(C1.a is C2.a)  # True
print(C1.c is C1.d)  # True
print(C1.b is C2.b)  # False

Python中小整数对象池和大整数对象池相关推荐

  1. python整数池_对Python中小整数对象池和大整数对象池的使用详解

    1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提 ...

  2. c语言实验大整数,C语言编写大整数.doc

    C语言编写大整数 本人写的大整数是256进制的,每一个字节里面的每一位都是有用的,因此比较节省空间.前面我用宏定义定义了大整数最大为128字节,也就是1024位,当然你可以改变SIZE的大小来改变大整 ...

  3. python整数池_【Python】Python中神奇的小整数对象池和大整数对象池

    小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立 ...

  4. python小整数池与大整数池

    在python中定义变量会有:id,type,value.对于==比较的是value,对于is比较的是id. 因此,对于相同value的变量,它的type相同,但是它的id值可能不一样.对于相同id的 ...

  5. Python面试题:字节到大整数的打包与解包

    需求:处理一个拥有128位长的16个元素的字节字符串 将bytes解析为整数,使用 int.from_bytes() 方法,并像下面这样指定字节顺序: # 为了将bytes解析为整数,使用 int.f ...

  6. python长整数相乘_python写的大整数相乘的方法

    输入 72106547548473106236 982161082972751393 两个大整数 输出结果 70820244829634538040848656466105986748 解题思路 首先 ...

  7. 整数判重、大整数Hash

    大整数Hash 总是听高届的大佬说,一个字符串Hash,能搞出大部分的字符串题,Hash真的有那么神吗? 答:是的 近来,参加很多NOIP模拟赛,其中一场设计判断大整数是否存在偷懒了一下,开了一个ma ...

  8. matlab将数扩大为整数,MATLAB如何完成大整数运算问题?

    Forcal+HugeCalc可以计算下面的数(只有指数部分不能是大整数): (1000!)^1000%(2000!) 代码: !using["HugeCalc"]; mvar: ...

  9. c语言任意两个整数相减_大整数加减运算的C语言实现

    大整数加减运算的 C 语言实现 一 . 问题提出培训老师给出一个题目:用 C 语言实现一 个大整数计算器.初步要求支持大整数的加.减运算,例如 8888888888888+1112=888888889 ...

最新文章

  1. 计算机控制系统如何设计,计算机控制系统设计
  2. 机器学习第9天:K-邻近算法模型(KNN)
  3. 计算机网络:子网划分、子网掩码、CIDR 、路由聚合相关计算详解
  4. IMP-00041: 警告: 创建的对象带有编译警告解决办法
  5. 【Unity新闻】如何使用Unity进行机器人模拟? | AR/VR全球需求率激增1400%
  6. flask v0.1 路由
  7. Windows XP Mode安装配置
  8. mysql -e 导出_mysql 导出数据导入数据
  9. python xml转字典_python xml转成dict
  10. java空指针找不到,跪空指针异常,所有的传入参数都判断了非空,实在找不到哪里没有赋值了...
  11. 【破损识别】基于matlab GUI机器视觉+SVM玉米种子破损识别(带面板)【含Matlab源码 1651期】
  12. 【教程】Edraw Max(亿图图示)基本操作图文详解
  13. VS2005 SP1补丁下载与安装
  14. 2017年信息学奥赛NOIP普及组试题
  15. dell无法启动计算机,戴尔电脑装系统蓝屏无法启动怎么办
  16. Ionic4 Ionic-refresher 下拉更新
  17. Optional orElseThrow 错误: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出...
  18. 软件测试缺陷表怎样描述,作为软件测试人员,如何描述缺陷(Defect)?
  19. “李焕英效应”将长期主宰中国影视股投资逻辑
  20. 一些俗语,不思八九,常想一二

热门文章

  1. Asp.net正则获取html内容
  2. tracert 路由跟踪程序
  3. Citrix 未注册解决办法
  4. 手把手配置Linux透明防火墙
  5. My MPC系列·暴风影音 V5.00 RC3
  6. 你选的那些创业方向 可能正在毁掉你!
  7. android studio常用适配器,从ListView(Android Studio)的自定义适配器中的U...
  8. 【MM模块】 Goods Receipt 收货 3
  9. SM30需要传输请求
  10. SAP query生成的程序名