[toc]

浅拷贝和深拷贝

为了更深入的了解参数传递底层原理, 我们需要讲解一下 "浅拷贝和深拷贝". 我们可以使用内置函数: copy(浅拷贝), deepcopy(深拷贝). 

浅拷贝:

不拷贝子对象的内容, 只是拷贝子对象的引用.

深拷贝:

会连子对象的内存也全部拷贝一份, 对子对象的修改不会影响源对象.

源码:

Python 第六节 第六课_不可变对象

Python 第六节 第六课_深拷贝_02

传递不可变对象是浅拷贝

传递参数是不可变对象 ( 例如: int, float, 字符串, 元组, 布尔值 ), 实际传递的还是对象的引用. 但在 "写操作" 时, 会创建一个新的对象拷贝. 这个拷贝使用的是 "浅拷贝", 而不是 "深拷贝".