# -*- coding: utf-8 -*-"""对象赋值与copyPython中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象copy.deepcopy 深拷贝 拷贝对象及其子对象"""import copya = [1, 2, 3,[4, 5]] # 原始对象b = a # 赋值, 传引用c = copy.copy(a) # 对象浅copy, 只copy父对象, 不copy父对象嵌套的子对象d = copy.deepcopy(a) # 深copy# 现在改变a 父对象和嵌套的子对象a[0] = 100a[3][0] = 400print "a =", aprint "b =", bprint "c =", cprint "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"""