小数据池

参考:https://www.cnblogs.com/zy740/p/11037902.html

 

1、小数据池的定义

什么是小数据池?小数据池就是python中的一种提高效率的方式,固定数据类型使用同一个内存地址  小数池--支持:str,int,bool

小数据池是干嘛的?a=1  b=1  id查看空间的内存地址  获得开辟空间的一种地址  print(id(a))  print(id(b))

2、小数据池的范围

2.1数字

小数据池的支持范围:-5~256  *记住

a=300 b=300 print(id(a))  print(id(b))

代码块:一个文件,一个模块,一个函数,一个类,终端中每一行都是一个代码块  在python中是用字典的方式存储

a=1000 b=1000 print(id(a))  print(id(b))

is 是判断两个内存地址是否相同   ==判断等号两边的值是否相同  利用小数据池的运用可以快速的理解is 与等等的区别

 

2.2 字符串

字符串:1.字符串在做乘法的时候总长度不能超过20,进行驻留   2、自己定义的字符串长度不受限制 字符串必须(字母、数字、下划线)组成,进行驻留

3、特殊字符串(中文除外)定义1个的时候,进行驻留 4、字符串*1 其实就是赋值

如果is判断相同  ==一定相同 如果==判断相同 is不一定相同

a=1000 b=1000 print(a == b)

a="alex"*2  b="alex"*2  print(a is b)

a = "12345678912345678qwertyuioqwertyuioQWERTYUIOWERTYUIOQWERTYUIOasdfghjksdfghjkasdgadsfasdfgasdgasdgfsdaf" ​ b = "12345678912345678qwertyuioqwertyuioQWERTYUIOWERTYUIOQWERTYUIOasdfghjksdfghjkasdgadsfasdfgasdgasdgfsdaf" ​ print(a is b)

a="你" b="你"  print(a is b)  #pycharm中是True  因为执行了代码块,终端中是False

a = "@" ​ b = "@" ​ print(a is b)

a = "你好" ​ b = a * 1 ​ print(a is b)

先执行代码块,不符合代码块才会执行小数据池

 

3、代码块

3.1代码块的规则

3.1.1数字

数字全部驻留

3.1.2字符串

1、字符做乘法的时候长度不能超过20  2、自定义的都被驻留  3、乘以为1的时候 就是赋值  4、python 3.7 乘法的时候总长度不能超过2096

总结:小数池  --支持:str ,int,bool  小数据池数字:-5~256  小数据池字符串:乘法时长度不能超过20

怎么能自己驻留? 需要使用python的内置模块

from sys import intern a = intern("@@@@@@"20) b = intern("@@@@@@"20) print(a is b) # 自己进行驻留

 

posted @ 2024-09-05 14:41  小虾米爱吃鱼  阅读(8)  评论(0编辑  收藏  举报