hzk20220818

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  阅读(71)  评论(0编辑  收藏  举报

导航