# -*- coding: utf-8 -*- """对象赋值与copy Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块 copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象 copy.deepcopy 深拷贝 拷贝对象及其子对象 """ import copy a = [1, 2, 3,[4, 5]] # 原始对象 b = a # 赋值, 传引用 c = copy.copy(a) # 对象浅copy, 只copy父对象, 不copy父对象嵌套的子对象 d = copy.deepcopy(a) # 深copy # 现在改变a 父对象和嵌套的子对象 a[0] = 100 a[3][0] = 400 print "a =", a print "b =", b print "c =", c print "d =", d """result: a = [100, 2, 3, [400, 5]] b = [100, 2, 3, [400, 5]] 引用即a别名,所以跟着a变 c = [1, 2, 3, [400, 5]] 浅copy,外层已经重新分配空间了,内层还是引用 d = [1, 2, 3, [4, 5]] 深copy """