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内数字提前已经被创建好,进行驻留,自己直接引用,其他负无穷 ~ 正无穷数字
字符串:自己定义字符串、长度不限,字符中英文特殊字符不限,都会驻留
posted on 2022-08-19 11:24 hzk-shzdx-university 阅读(73) 评论(0) 编辑 收藏 举报