小数据池的概念

小数据池

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 # 判断两个内存地址是否相同 # 必须记住 ​ == # 判断等号两边的值是否相同 # 必须记住

2.2字符串

字符串: ​ 1.字符串在做乘法的时候总长度不能超过20,进行驻留 # 记住 ​ 2.自己定义的字符串 长度不限制 字符串必须(字母,数字.下划线)组成,进行驻留 ​ 3.特殊字符(中文除外)定义1个时候,进行驻留 ​ 4.字符串*1 其实就是赋值

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

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

a = "alexdsb" * 2 ​ b = "alexdsb" * 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.python3.7 乘法的时候总长度不能超过4096

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

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

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

posted @ 2019-06-17 09:21  zy740  阅读(798)  评论(0编辑  收藏  举报