标签:pop bsp class 操作 可变 创建 port 类型 不同
>>> import copy // = 指向同一个内存空间,操作的是同一个对象 >>> t1 = {‘a‘:1, ‘b‘:2} >>> t2 = t1 >>> id(t1) 42559696 >>> id(t2) 42559696 // 浅拷贝,不同内存空间操作不同对象,只做一层创建 >>> t1 = {‘a‘:1, ‘b‘:2} >>> t2 = copy.copy(t1) >>> t2 {‘a‘: 1, ‘b‘: 2} >>> t1 {‘a‘: 1, ‘b‘: 2} >>> t2.pop(‘b‘) 2 >>> t2 {‘a‘: 1} >>> t1 {‘a‘: 1, ‘b‘: 2} // 但是子元素为可变类型时,它是引用类似于在子元素上使用 ‘’=‘’ >>> t1 = {‘a‘:1, ‘b‘:2, ‘c‘:[1,2,3]} >>> t2 = copy.copy(t1) >>> t2[‘c‘][0] = 4 >>> t2 {‘a‘: 1, ‘b‘: 2, ‘c‘: [4, 2, 3]} >>> t1 {‘a‘: 1, ‘b‘: 2, ‘c‘: [4, 2, 3]} // 深拷贝:递归的拷贝所有元素,即使子元素使用的是可变类型,深拷贝的结果是完全不相干 >>> t1 = {‘a‘:1, ‘b‘:2, ‘c‘:[1,2,3]} >>> t2 = copy.deepcopy(t1) >>> t2[‘c‘][0] = 4 >>> t2 {‘a‘: 1, ‘b‘: 2, ‘c‘: [4, 2, 3]} >>> t1 {‘a‘: 1, ‘b‘: 2, ‘c‘: [1 2, 3]}
标签:pop bsp class 操作 可变 创建 port 类型 不同
原文地址:http://www.cnblogs.com/maxiaohei/p/7789058.html