对象引用与垃圾回收
变量保存的是引用:
- 简单的赋值不创建副本
- 对 += 或 *= 所做的增量赋值来说,如果左边的变量绑定的是不可变对象,会创建新对象;如果是可变对象,会就地修改
- 为现有的变量赋予新值,不会修改之前绑定的变量 – 重新绑定
- 函数的参数以别名的形式传递,函数可能会修改通过参数传入的可变对象
- 使用可变类型作为函数参数的默认值有危险,因为如果就地修改了参数,默认值也就变了,这会影响以后使用默认值的调用
1. 变量与对象
1.1 引用式变量
- 理解: 引用式变量不是存储数据的盒子,而是附加在对象上的标注
- a=[]:
- Python 中赋值语句的右边先执行,对象在右边创建或获取,在此之后左边的变量才会绑定到对象上,就像为对象贴上标注
- 说把变量分配给对象更合理,反过来说有问题,因为对象在赋值之前就创建了

