软件测试/测试开发丨Python 深拷贝与浅拷贝

news2025/7/15 12:47:46

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27327

深拷贝与浅拷贝

  • 浅拷贝:有4中实现方法:对象本身的copy方法,工厂方法,切片以及copy模块的copy方法。对容器类型复杂数据结构,只拷贝第一层引用,拷贝效率快,内存占用少如果不涉及数据独立性的话,都用浅拷贝。

image

import copy

# 原始数据
originData = [[1,2],{"name":"Tom", "chars":["A","B"]}]

# 使用对象的copy()方法得到浅拷贝对象
copyData1 = originData.copy()
# 使用工厂方法获取浅拷贝对象
copyData2 = list(originData)
# 使用切片方式获取浅拷贝对象
copyData3 = originData[:]
# 使用 copy模块中的copy方法获取浅拷贝对象
copyData4 = copy.copy(originData)

# 拷贝成功的验证,内容相同,地址不同
# 查看所有对象内容
print(originData)
print(copyData1)
print(copyData2)
print(copyData3)
print(copyData4)
# 查看所有对象的址,
print(id(originData))
print(id(copyData1))
print(id(copyData2))
print(id(copyData3))
print(id(copyData4))

# 当修改任意对象时,其它对象都会受影响
copyData3[1]["chars"][1] = "BBB"

# 查看所有对象的数据
print(originData)
print(copyData1)
print(copyData2)
print(copyData3)
print(copyData4)
  • 深拷贝:需要数据独立性,修改复制出来或者原始数据的时候,其他数据不会随之改变

image

import copy

# 原始数据
originData = [[1,2],{"name":"Tom", "chars":["A","B"]}]

# 使用 copy模块中的deepcopy方法获取深拷贝对象
deepCopyData = copy.deepcopy(originData)

# 拷贝成功的验证,内容相同,地址不同
# 查看所有对象内容
print(originData)
print(deepCopyData)

# 查看所有对象的址,
print(id(originData))
print(id(deepCopyData))


# 当修改任意对象时,其它对象不会受影响
originData[1]["chars"][1] = "BBB"

# 查看所有对象的数据
print(originData)
print(deepCopyData)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/991392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何才能搭建高质量的在线产品手册呢?

随着科技的发展,越来越多的企业将目光投向互联网,并将自己的产品推向了线上。而对于这些线上产品,拥有一份完备的、易用、高质量的在线产品手册显得尤为重要。 如何才能搭建高质量的在线产品手册呢? 一、确定手册的内容和格式 …

数字高精度温度传感芯片的工作原理以及应用

数字温度传感芯片是一种测量温度的设备,其工作原理是通过感知周围环境的温度变化来产生电信号,并将其转换为数字信号输出。通常使用集成电路技术,利用材料的电阻、电容、热电效应等特性来实现温度的测量。能够提供准确和可重复性的温度测量结…

FPGA GTH aurora 8b/10b编解码 PCIE 板对板视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTH 全网最细解读GTH 基本结构GTH 发送和接收处理流程GTH 的参考时钟GTH 发送接口GTH 接收接口GTH IP核调用和使用 4、设计思路框架视频源选择silicon9011解码芯片配置及采集动态彩条视频数据组包GTH aurora 8b/10…

「黄钊的AI日报·第一季」正式发布!

1、每天5条AI内容点:不是常见的新闻汇总模式,而是站在AI产品经理的视角,提炼干货认知、展示“what I see”。 2、已在社群“AI产品经理大本营”里,已运营5个月之久,用户口碑非常好(可见《详细介绍「黄钊的A…

YOLOV7改进-轻量级上采样算子CARAFE

CARAFE 可以作为论文中的小创新点 上采用算子参数可以跑一跑,增加实验丰富度,工作量 1、复制代码,到common文件的最底下就可以了 2、yolo.py复制 3、yolov7里就俩上采样,替换名称,后面参数可以调 打印出来便于观看参数

Java——》线程间是如何通信的

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

SpringBootVueEmementUI前后端分离整合、统一封装axios、跨域配置

🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

人机融合的经验与人类的或机器的经验不同

一、人机融合的经验与人、机器的经验有所不同 人的经验是通过感知、学习思考等方式积累起来的,是基于我们的感官、情感和意识等特点所形成的。人在与世界交互的过程中,通过观察事物、从错误中学习、与他人交流等方式逐渐积累了大量的经验。人类的经验通常…

在 Arweave 中轻松管理文件:借助 4EVERLAND 完成 Web3 前端Path Manifests的终极指南

为什么使用Path Manifests? 当在 IPFS 上发布 NFT 时,图片和元数据会被上传到 IPFS 网络以获得一个根 CID,其形式如下: ipfs://bafybeic36ik6cngu37xbzmpytuvyo7z3lyeen44clkkxq5d263zj4nkzr4 通过使用这个根 CID,每…

ABB机器人10106故障报警(维修时间提醒)的处理方法

ABB机器人10106故障报警(维修时间提醒)的处理方法 故障原因: ABB机器人智能周期保养维护提醒,用于提示用户对机器人进行必要的保养和检修。 处理方法: 完成对应的保养和检修后,要进行一个操作&#xf…

安装 paddlepaddle paddleocr库,避坑指南

看到这个库我就头疼,因为换了电脑,不得不再来一遍,又是到处踩坑!拼了好几个小时,总结出来的最终解决方法!详细的傻瓜式解决! - import paddle 报错!illegal hardware instruction py…

党建专题汇报片是什么

党建专题汇报片是以党的建设和发展为主题的一种专题性影片。它通过影像、文字、音频等多种表现手段,全面展示和宣传党的建设和发展情况,突出党的主张、方针、政策等内容,旨在加强党员教育培训、宣传党建成果、凝聚党员思想力量、推动党的事业…

上手Spring

设置Maven镜像为阿里云 找到Maven的目录所在位置找到conf目录找到settings.xml文件 找到Maven的目录所在位置&#xff1a;去idea 的设置中 直接搜索Maven 找到conf目录 修改Maven本地仓库的地址 地址自定义 修改Maven的镜像为阿里云镜像 <mirror><id>nexus-aliy…

什么是Scrum?如何实施Scrum(敏捷开发)以及敏捷工具

什么是Scrum&#xff1f; Scrum是一个敏捷开发框架&#xff0c;它是一个增量的、迭代的开发过程。它被广泛应用于敏捷软件开发&#xff0c;在Scrum中&#xff0c;开发过程由若干个短的迭代周期组成&#xff0c;每个迭代周期称为一个Sprint。 那么Scrum如何实施呢&#xff1f;…

【广州华锐互动】AR远程智慧巡检在化工行业中的应用

AR远程智慧巡检是一种基于增强现实技术的新型巡检方式&#xff0c;它可以利用虚拟信息和现实场景的结合&#xff0c;实现对设备、工艺流程等方面的实时监测和识别。在化工行业中&#xff0c;AR远程智慧巡检具有广泛的应用前景&#xff0c;可以提高生产效率和安全性。 一、设备巡…

Qt多线程网络通信-[套接字通信 socket]

构造函数 QTcpServer::QTcpServer(QObject *parent nullptr) 创建套接字后 设置监听 bool QTcpServer::listen(const QHostAddress &address QHostAddress::Any, quint16 port 0) QHostAddress::Any支持IPV4和IPV6,使用默认参数 端口号可以指定8000以上的 判断客户…

Linux之Shell概述

目录 Linux之Shell概述 学习shell的原因 shell是什么 shell起源 查看当前系统支持的shell 查看当前系统默认shell Shell 概念 Shell 程序设计语言 Shell 也是一种脚本语言 用途 Shell脚本的基本元素 基本元素构成&#xff1a; Shell脚本中的注释和风格 Shell脚本编…

ECS通过DNAT将C非专线网段并网

1.问题描述 客户需求&#xff1a;ECS1需要访问140.131.208.0/24 &#xff0c;由于140.131.208.0/24网段属于公网地址&#xff0c;在CSW侧为进行并网。 解决方案&#xff1a;故将ECS1发起的请求其在云内ECS2做DNAT&#xff0c;将该网段转换成CSW并网网段170.101.253.0/24&…

【好文推荐】openGauss psycopg2 批量操作性能测试

测试版本 本测试基于 openGauss 版本的 psycopg2 驱动。 import psycopg2 as pg>>> pg.__libpq_version__90204>>> pg.__version__2.8.6 (dt dec pq3 ext) 测试环境 组件 说明 客户端 Rocky Linux 8 虚拟机 数据库 openGauss 3.0.3 in docker 网络…

《DevOps实践指南》- 读书笔记(三)

DevOps实践指南 Part 3 第一步 &#xff1a;流动的技术实践9. 为部署流水线奠定基础9.1 按需搭建开发环境、测试环境和生产环境9.2 应用统一的代码仓库9.3 使基础设施的重建更容易9.4 运行在类生产环境里才算“完成”9.5 小结 10. 实现快速可靠的自动化测试10.1 对代码和环境做…