小数据池(一种规则)
支持类型 - int,str,bool
数字:在做乘法的时候范围 -5~256****
数字在做乘法的时候不能使用浮点数
字符串:在同一个代码块下,只要内容相同就采用相同的内存地址
乘法的时候总长度不能超过20*
乘法的时候中文,特殊符号乘以0
布尔值:在同一个代码块下,只要内容相同就采用相同的内存地址
~小数据池额验证方法~
必须脱离代码块才能进行验证
限制性代码块的规则,在执行小数据的规则---(驻留机制)
代码块(一个文件,一个函数,一个类,一个模块,终端中的每一行)
支持类型 - int,str,bool
数字:在同一个代码块下,只要内容相同就采用相同的内存地址(-5以后就不是)
在做乘法的时候范围 -5~256
数字在做乘法的时候不能使用浮点数**
字符串:在同一个代码块下,只要内容相同就采用相同的内存地址
乘法的时候总长度不能超过20
乘法的时候中文,特殊符号乘以1和0
布尔值: 在同一个代码块下,只要内容相同就采用相同的内存地址
- 数字:全部驻留
- 字符串:
- 做乘法时的时候总长度不能超过20
- 自定义的都驻留
- 乘数为1的时候就是赋值
- python3.7乘法的时候总长不能超过4096
方法
id 查看内存地址
is 判断内存地址是否相同 ***
== 判断值是否相同 ***
内存地址相同,值一定相同
值相同,内存地址不一定相同
深浅拷贝
赋值
多个变量指向的同一个内存地址(相当于贴标签)一个变量对其进行操作,其他变量都会进行变动
浅拷贝
浅拷贝的时候,只会开辟一个新的容器列表,其他元素是用的都是原列表中的元素
只拷贝第一层元素,在修改第一层元素(不可变数据类型)的时候,拷贝出来的新列表不进行改变
在修改第一层元素(可变的数据类型)的时候,拷贝出来的新列表改变
在修改第一层元素中的元素(可变的数据类型)时候,拷贝出来的新列表进行改变
在修改新拷贝的列表中可变数据类型进行增删改查的时候,原列表进行够改变
深拷贝
全部拷贝 -- 不可变数据类型指向是原数据的内存地址,
可变数据类型开辟新的空间,空间里的值是不可变的数据类型进行公用,可变的在次开启一个新的空间