Python小整数池-小数据池-驻留机制-is和==区别
Python小整数池-小数据池-驻留机制-is和==区别
1.is和==的区别
相同点:
都用来比较两个对象是否一样
不同点:
is 用来比较是否是同一个对象,即对象的物理地址是否相同( id(对象 1)是否等于id(对象2) )
== 用来比较对象存储的值是否相等(值相等并不一定就是同一个对象)
2.Python终端和代码块中缓存机制的不同
Python终端中缓存机制-----小整数池:
数字:-5 ~ 256内数字提前已经被创建好,进行驻留,自己直接引用
字符串:
Python 3.7解释器之后:自己定义的字符串如果没有中文和特殊符号,长度不限,都进行驻留
PyCharm中的缓存机制------代码块(也就是一个py文件、一个类、一个函数、一个模块)和小整数池:
1.小整数池
是一个全局的,不属于代码块(一个py文件、一个类、一个函数、一个模块)
2.代码块
在代码块内,自己定义时都进行驻留,直到代码块结束
因为代码块执行时会创建一个字典,专门用来存储新的对象,想要创建新的数字字符串对象时,都会在字典中进行查找,如果没有才创建新的,有就直接引用
数字:-5-256内数字提前已经被创建好,进行驻留,自己直接引用,其他负无穷 ~ 正无穷数字
字符串:自己定义字符串、长度不限,字符中英文特殊字符不限,都会驻留
分类:
Python
posted on 2022-08-19 11:24 hzk-shzdx-university 阅读(80) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)