什么是小数据池? 小数据池就是Python中一种提升效率的方式,固定数据类型使用同一个内存地址 小数池 -- 支持: str,int,boolpython
小数据池是干吗的? a = 1 b = 1 id 查看空间的内存地址 获取开辟空间的一种地址 print(id(a)) print(id(b)) 函数
小数据池数字支持范围: -5 ~ 256 *记住ui
a = 300 b = 300 print(id(a)) print(id(b))spa
代码块: 一个文件,一个模块,一个函数,一个类,终端中每一行都一个代码块 在python中是用字典的方式存储内存
a = 1000 b = 1000 print(id(a)) print(id(b))字符串
is # 判断两个内存地址是否相同 # 必须记住 == # 判断等号两边的值是否相同 # 必须记住pycharm
字符串: 1.字符串在作乘法的时候总长度不能超过20,进行驻留 # 记住 2.本身定义的字符串 长度不限制 字符串必须(字母,数字.下划线)组成,进行驻留 3.特殊字符(中文除外)定义1个时候,进行驻留 4.字符串*1 其实就是赋值io
若是is判断相同 == 必定相同 若是==判断相同 is 不必定相同class
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)
先执行代码块,不符合代码块才会执行小数据池
数字:所有驻留
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) # 本身进行驻留