博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python】copy()
阅读量:2225 次
发布时间:2019-05-09

本文共 965 字,大约阅读时间需要 3 分钟。

先上结论:


我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体存在即使改变原有的对象,也不会改变复制之后的对象


浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。相当于复制的地址,指向的新数据


注意

对于简单的对象来说,对象不会改变,只是复杂的对象,list套list这种

import numpy as npimport copydef COPY():      global origin    origin = [1,2,[3,4]]    global t1     t1 = copy.copy(origin)    global t2     t2 = copy.deepcopy(origin)    print(t1,'----')    print(t1 == t2)  # 比 较 内 容    print(t2,'----')    print(t2 is t1)  # 比 较 对 象def UPDATE():    origin[2][0] = 'hey!'    print(origin)    print(t1)    print(t2)def coPy_easy():    t = 1    p1 = copy.copy(t)    p2 = copy.deepcopy(t)    print(p1 == p2)    print(p1 is p2)if __name__ == '__main__':    COPY()    UPDATE()    coPy_easy()# 输出# [1, 2, [3, 4]] ----# True   内容还是一样的# [1, 2, [3, 4]] ----# False  已经不是同一个对象了# 修改之后# [1, 2, ['hey!', 4]]---------origin# [1, 2, ['hey!', 4]]---------t1  复制的是一个地址# [1, 2, [3, 4]]-------------t2  复制的是内容,生成了新的对象# 简单对象# True# True 对于简单的对象就是同一个对象了

转载地址:http://kbmfb.baihongyu.com/

你可能感兴趣的文章
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>