Python基础——引用引用类型的坑
Python的基本类型
不可变类型 int float decimal complex bool str tuple range frozenset bytes
可变类型 dict list set bytearray 用户定义类
可变与不可变区别
不可变 Python 中不可变数据类型,是不允许变量的值发生变化,如果改变了变量的值,相当于是又在内存中开辟一块新空间来存新的值。对于相同的值的对象,在内存中则只有一个对象(同一块空间),但会有多个变量指向同一个地址;
可变 Python 中可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会辟一块新空间,变量引用的对象的值得内存地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的地址,即每个对象的值都有自己的内存地址。但是进行把老的可变变量赋值给新的变量时,则新变量被赋予的是老变量的值地址指向!修改老变量的值新变量的值也会发生改变!
测试
可变变量进行赋值操作后的地址 id(varName) 查变量地址 res: 结论值地址不变
可变变量进行赋值后修改老变量 res : 新老都变
|