需特别注意的地方(关于内存机制)
1、is和==的区别
is是比较内存地址是否一致,==是比较值是否一致。
2、赋值时是在内存中开辟一个区域,而修改地址中的元素,指向同一个地址的变量都会改变。
赋值:
修改元素地址:
但是python的有个特殊的地方,会把常用的数字和字符串,放到一个缓存区域,即使重新赋值也不会改变内存地址。
数字的范围是-5~256,超过这个范围才会重新开辟内存地址。
字符串要字母+符号*3以上才会重新开辟内存地址。
1、is和==的区别
is是比较内存地址是否一致,==是比较值是否一致。
2、赋值时是在内存中开辟一个区域,而修改地址中的元素,指向同一个地址的变量都会改变。
赋值:
修改元素地址:
但是python的有个特殊的地方,会把常用的数字和字符串,放到一个缓存区域,即使重新赋值也不会改变内存地址。
数字的范围是-5~256,超过这个范围才会重新开辟内存地址。
字符串要字母+符号*3以上才会重新开辟内存地址。