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']]

另外一点,你判断对象之间是否是拷贝,可以使用is运算符来确定。
a is b -> True  a与b引用的是同一个对象,不是拷贝
       -> False a与b是彼此拷贝对象

最新文章

  1. 【JS基础】正则表达式
  2. 例如筋斗云的效果,但不通过offset定位的flag标记
  3. JS动态添加option和删除option
  4. codeforces 518B. Tanya and Postcard 解题报告
  5. Codeforces Round #253 (Div. 2) A. Anton and Letters
  6. CSS3 旋转代码备忘
  7. Dynamic Expression.Call Any
  8. 如何定制Sink扩展.Net Remoting功能
  9. 【OpenCV-Python】Python Extension Packages for Windows
  10. Java Web系列:Spring依赖注入基础
  11. Java 设计模式实现 不错的引用
  12. 异步tcp通信——APM.Core 服务端概述
  13. oracle中anyData数据类型的使用实例
  14. C++ STL中map存储方式——SAP电面(4)
  15. PL/SQL编程(1) - 存储过程,函数以及参数
  16. c# 上传附件大小限制的问题
  17. 设置firefox每次访问网页时检查所存网页的较新版本
  18. echarts中的区域缩放组件dataZoom,主动触发选区缩放点击事件
  19. 查看window系统电脑连接过的wifi密码
  20. 10.1-uC/OS-III任务堆栈空间

热门文章

  1. SSL与TLS的区别以及介绍
  2. bzoj 1318: [Spoj744] Longest Permutation 智商题
  3. 【转载】test和cmp比较
  4. CloudTest 事务监控:千呼万唤始出来
  5. 怎样配置spring aop
  6. 已授予账号 "以服务方式登录"的权限
  7. IntelliJ idea 中使用Git
  8. Django admin site(一)ModelAdmin Options
  9. 使用PHP处理POST上传时$_FILES数组为何为空
  10. Oracle中Blob和Clob类型的区别与操作