python 中的 赋值 浅拷贝 深拷贝

1、对象的赋值

  都是进行对象引用(内存地址)传递,即 b is a ,a 变 b也变

2、浅拷贝

  会创建一个新的对象,对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址)

  当我们使用下面的操作时,会产生浅拷贝:

    使用切片[:]操作

    使用工厂函数(list/dir/set)

    使用copy模块中的copy函数

3、深拷贝

  会创建一个新的对象,并且对于对象中的元素,深拷贝都会重新生成一份(有特殊情况,下面会说明),而不是简单的使用原始元素的引用(内存地址)

  拷贝的特殊情况:

    对于非容器类型(如数字,字符串,和其他‘原子’类型的对象)没有拷贝这一说

    如果元组变量只只包含原子类型对象,则不能深拷贝

上一篇:摘:JavaScript性能优化小知识总结


下一篇:JavaScript性能优化小窍门汇总(含实例)