Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝 拷贝对象及其子对象
一个很好的例子:

import copy
a = [1, 2, 3, 4, ['a', 'b']]  #原始对象

b = a  #赋值,传对象的引用
c = copy.copy(a)  #对象拷贝,浅拷贝
d = copy.deepcopy(a)  #对象拷贝,深拷贝

a.append(5)  #修改对象a
a[4].append('c')  #修改对象a中的['a', 'b']数组对象

print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d

输出结果:
a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c =  [1, 2, 3, 4, ['a', 'b', 'c']]
d =  [1, 2, 3, 4, ['a', 'b']]

Python 天天美味系列(总)

Python 天天美味(20) - 命令行参数sys.argv

Python 天天美味(21) - httplib,smtplib

Python 天天美味(22) - 拷贝对象(深拷贝deepcopy与浅拷贝copy)

Python 天天美味(23) - enumerate遍历数组

Python 天天美味(24) - 初始化多维数组

...

转载于:https://www.cnblogs.com/coderzh/archive/2008/05/17/1201506.html

Python天天美味(22) - 拷贝对象(深拷贝deepcopy与浅拷贝copy)相关推荐

  1. Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    http://www.jb51.net/article/15714.htm 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deepcopy 深拷贝 拷贝 ...

  2. python deepcopy_python中的深拷贝(deepcopy)和浅拷贝(copy)介绍及代码参考

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用.以下分两个思路来分别理解浅拷贝和深拷贝: (1) ...

  3. 深拷贝(deepcopy)与浅拷贝(copy)的区别

    1.深拷贝与浅拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):是对于一个对象的顶层拷贝,拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): 是对于一个对象所有层次 ...

  4. python对象复制_Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    源码阅读系列:EventBus title: 源码阅读系列:EventBus date: 2016-12-22 16:16:47 tags: 源码阅读 --- EventBus 是人们在日常开发中经常 ...

  5. Python天天美味(21) - httplib,smtplib

    例一:使用httplib访问某个url然后获取返回的内容: import httplib conn=httplib.HTTPConnection("www.cnblogs.com" ...

  6. Python天天美味(23) - enumerate遍历数组

    其他语言中,比如C#,我们通常遍历数组是的方法是: for (int i = 0; i < list.Length; i++) {     //todo with list[i] } 在Pyth ...

  7. 深入理解Python深拷贝(deepcopy)、浅拷贝(copy)、等号拷贝----看了还不懂找我

    编程中难免会遇到copy(浅拷贝)与deepcopy(深拷贝)问题,一不小心就会掉进坑中了,或许很多人只知道有深浅拷贝,但是你又知道copy和"="拷贝有什么区别么?也许很少有人对 ...

  8. Python天天美味(4) - isinstance判断对象类型

    Python中判度对象类型方法非常简单,不需要像别的语言一样使用如下的判断方法: if (typeof(objA) == typeof(String)) {     //TODO } 在Python中 ...

  9. Python天天美味(35) - 细品lambda

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):     return x**2 print f(4) Python中使用lambda的话,写成这样 g ...

最新文章

  1. c/c++左值和右值
  2. ssh错误 server not ready for puppeth err=“ssh: handshake failed: ssh: unable to authenticate... 解决方法
  3. 外网访问FTP出错200 Type set to A
  4. 虚拟键码 键盘消息(初稿)
  5. MySQL默认值(DEFAULT)
  6. jQuery-对Radio/CheckBox的操作集合
  7. 图片上的文字怎么转换为word
  8. 服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?
  9. Django Rest Framework 部分源码剖析
  10. 标准模板库(STL)之 list 列传
  11. 重新理解“失败是成功他妈”
  12. 开源组件分析工具OpenSCA教程
  13. c# pdf转html,C# 将PDF转为Word、Html、XPS、SVG、PCL、PS——基于Spire.Cloud.PDF
  14. vue-json-editor高度调整
  15. /etc/fstab文件的详解
  16. niosii spi 外部_niosii 的SPI详解
  17. word 2007 无法输入汉字,怎么办?
  18. 分享时刻—今日一收获
  19. PHP文件怎么改tne,修改 · thinkphp6文档 · 看云
  20. CentOS关闭火狐浏览器Flash过期提示

热门文章

  1. 汽车新零售转型之路怎么走?你需要知道这些
  2. 大三前端实习生2018总结
  3. 深入分析 Flutter 初始化流程
  4. halcon算子之tuple_gen_const,用于生成特定长度的元组并且初始化其元素
  5. 解决Linux下MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.[FAILED]...
  6. iOS NSNotificationCenter 使用姿势详解
  7. Alpha版使用说明
  8. 【程序员面试宝典】强制类型转换之面试例题2
  9. 免费迅雷会员VIP帐号获取器 – 迅雷离线下免费用
  10. drop by time at xjtlu consultation center