Python 标准库的 copy 模块提供了对象拷贝的功能。 copy 模块中有两个函数 copy 和 deepcopy,分别支持浅拷贝与深拷贝。

copy_demo.py

import copyclass MyClass(object):def __init__(self, name):super(MyClass, self).__init__()self.name = namea = [MyClass('huey')]
b = copy.copy(a)
c = copy.deepcopy(a)print 'a is b?', a is b                # a is b? False
print 'a == b?', a == b                # a == b? True
print 'a is c?', a is c                # a is c? False
print 'a == c?', a == c                # a == c? False

a[0].name = 'sugar'
print 'a[0].name =', a[0].name        # a[0].name = sugar
print 'b[0].name =', b[0].name        # b[0].name = sugar
print 'c[0].name =', c[0].name        # c[0].name = huey

转载于:https://www.cnblogs.com/huey/p/4334925.html

Python(2.7.6) copy - 浅拷贝与深拷贝相关推荐

  1. python中的引用、浅拷贝和深拷贝

    在python中,有一句话:"一切皆为对象,一切皆为对象的引用",所以 只要记住这句话就很容易清楚python中的引用.浅拷贝和深拷贝了. 1. 引用 python中的引用是经常使 ...

  2. python—类和对象之浅拷贝和深拷贝详细讲解

    一.变量的赋值操作 定义:只是形成2个变量,实际上还是指向同一个对象 代码如下: 内存示意图: 将创建CPU类的实例对象赋值给cpu1进行储存,所以cpu1的id为0212, 然后将cpu1赋值给cp ...

  3. Python列表常用操作,浅拷贝及深拷贝

    先看一些基本的操作 names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex&qu ...

  4. Python中的对象引用、浅拷贝与深拷贝

    最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...

  5. 【Python基础】对象的浅拷贝与深拷贝

    Python的赋值操作一般都是存储对象的引用,而不是对象的拷贝.因为如果直接对对象进行拷贝,那么运行将会比较缓慢,而且我们实际开发大部分场景都是希望引用对象而不是拷贝对象.当然了,如果你明确要求拷贝, ...

  6. python中的赋值、浅拷贝和深拷贝

    赋值 浅拷贝 深拷贝 拷贝引用,不拷贝对象 拷贝对象,不拷贝子对象(拷贝对子对象的引用) 拷贝对象,包括子对象 原始数据改变,拷贝数据改变 原始数据改变,子对象改变 原始数据改变,拷贝对象不改变 1. ...

  7. python中的复制、浅拷贝和深拷贝的区别

    (1)直接复制:传递对象的引用(该引用指向变量的存储地址),若原始值改变,则被赋值的b也会做出相同的改变. b = alist (2)浅拷贝:使用copy库中的copy函数,只拷贝父对象,不拷贝子对象 ...

  8. Python的浅拷贝和深拷贝

    相对于其他传统编程语言,Python有一个比较奇怪的特性,即在复制对象时,有浅拷贝(shallow copy)和深拷贝(deep copy)两种方式. 浅拷贝和深拷贝只和复合对象相关.复合对象指的是包 ...

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

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...

最新文章

  1. 几张图片总结我的2015年
  2. rsa加密算法java实例,java实现的RSA加密算法详解
  3. 怎样将英文html文件转换成中文乱码,解决html导出pdf中文乱码问题的正确姿势
  4. LinkedBlockingQueue源码
  5. 趣挨踢 | 30 个让程序员崩溃的瞬间,笑死我了!
  6. CardLayout布局练习(小的图片浏览器)
  7. xss img onerror java_java后台防止XSS的脚本攻击
  8. mysql异机备份_RMAN异机恢复备份集权限问题
  9. 字符编码(1)——Unicode,utf-8
  10. 耳机煲机软件测试自学,耳机煲机工具Test Tone Generator蹂躏新耳机教程
  11. cs1.6服务器修改游戏类型,cs1.6联机及游戏模式详细解读
  12. 冷凝器胶球自动在线清洗装置在中央空调主机冷凝器清洗方案介绍
  13. SolidWorks、inventor、UG...我该学哪个?主流三维机械设计软件对比
  14. 机器翻译实战(英译汉)Transformer代码学习详解
  15. Linux —— 时间问题(localtime和gmtime)
  16. Elasticsearch学习4《Elasticsearch的各种查询》
  17. MFC设置应用程序图标
  18. Zamzar.com 在线文档转换 图片转换 视频转换
  19. 基于STM32和hs1527、ev1527、rt1527、fp1527的无线接收解码程序
  20. EventBus3 简单使用及注意点

热门文章

  1. 基于指数平滑对心电信号进行PQRST模拟(第二种方案)
  2. Underlying cause: com.mysql.cj.jdbc.exceptions.CommunicationsException : Communications link failure
  3. compiz把xfce4系统搞崩溃后的恢复方案
  4. ubuntu下sublime如何一次只打開一個文件
  5. 细胞分裂java移植_胚胎移植前,先调理好你的子宫内膜!
  6. logcat read :Invaild argument
  7. 这个时代,给了我们年轻人太多
  8. 微信小程序,前端大梦想(七)
  9. RabbitMQ 高可用集群搭建及电商平台使用经验总结
  10. Win7有多条隧道适配器(isatap、teredo、6to4)的原因及关闭方法