对象的浅拷贝和深拷贝
对象的浅拷贝和深拷贝
- 简要介绍
- 代码实现
简要介绍
浅拷贝:python拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象和拷贝对象引用同一个对象
深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象。源对象和拷贝对象所有的子对象也不同
变量的数值操作:只是形成两个变量,实际上时指向同一个对象
代码实现
// #测试浅拷贝和深拷贝
import copyclass MobilePhone:def __init__(self,cpu,screen):self.cpu=cpuself.screem=screenclass CPU:def calculate(self):print("算你个12345")print("cpu对象:",self)
class Screen:def show(self):print("显示一个好看的画面,亮瞎你的眼")print("screen对象",self)
#测试变量的赋值
c1=CPU()
c2=c1
print(c1)
print(c2)#测试浅拷贝
s1=Screen()
m1=MobilePhone(c1,s1)
m2=copy.copy(m1)print(m1,m1.cpu,m1.screem)
print(m2,m2.cpu,m2.screem)
#测试深复制
m3=copy.deepcopy(m1)
print(m1,m1.cpu,m1.screem)
print(m3,m3.cpu,m3.screem)
变量赋值操作结果:
浅拷贝结果:
深拷贝结果
对象的浅拷贝和深拷贝相关推荐
- 拷贝Python对象、浅拷贝、深拷贝
浅拷贝和深拷贝在C++中出现和使用的较多,python也有相应的用法. test1 = ['a','c','b','d','f'] print id(test1) test2 = test1 prin ...
- python中不可变对象_Python中的可变对象与不可变对象、浅拷贝与深拷贝
Python中的对象分为可变与不可变,有必要了解一下,这会影响到python对象的赋值与拷贝.而拷贝也有深浅之别. 不可变对象 简单说就是某个对象存放在内存中,这块内存中的值是不能改变的,变量指向这块 ...
- Python —对象的浅拷贝和深拷贝
变量的赋值操作 只是形成两个变量,实际还是指向同一个对象. 浅拷贝 Python 拷贝一般都是浅拷贝(copy.copy).拷贝时,对象包含的子对象内容不拷贝.因此,源对象和拷贝对象会引用同一个子对象 ...
- python—类和对象之浅拷贝和深拷贝详细讲解
一.变量的赋值操作 定义:只是形成2个变量,实际上还是指向同一个对象 代码如下: 内存示意图: 将创建CPU类的实例对象赋值给cpu1进行储存,所以cpu1的id为0212, 然后将cpu1赋值给cp ...
- Python对象的浅拷贝与深拷贝
在讲我们深浅拷贝之前,我们需要先区分一下拷贝和赋值的概念.看下面的例子 a = [1,2,3] 赋值: b = a 拷贝: b = a.copy() 上面的两行代码究竟有什么不同呢?带着这个问题,继续 ...
- 【Python基础】对象的浅拷贝与深拷贝
Python的赋值操作一般都是存储对象的引用,而不是对象的拷贝.因为如果直接对对象进行拷贝,那么运行将会比较缓慢,而且我们实际开发大部分场景都是希望引用对象而不是拷贝对象.当然了,如果你明确要求拷贝, ...
- Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...
- 【JS专栏】JS对象的浅拷贝与深拷贝
浅拷贝 自己创建一个新的对象,来接受你要重新复制或引用的对象值.如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象:但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这 ...
- python 实例对象 浅拷贝_Python对象中的浅拷贝和深拷贝
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. Python中的赋值语句不会创建对象的副本,而只是给对象绑定了新的名称.对于不可变对象,这通常没什么区别. ...
最新文章
- 爱了!安利一个相见恨晚的可视化学习网站
- 2021_Nov_9_Supervision_STEMM_What_You_Need_In_Advance?
- 计算机网络学习--交换机和路由器转发数据原理
- 使用 Go 实现生产者和消费者,Kafka 正式升级到 3.0!
- 程序媛计划——python数据库
- 施一公:带好学生,是特别要紧的事
- Rational.Rose7.0系统软件
- Unity DoTween
- Anaconda如何安装PyTorch?
- 地摊经济一千年:从《韩熙载夜宴图》到木屋烧烤“撸串”
- css less使用
- linux系统运行flash3d,在Linux上运行STM32,快来试试!
- kali工具熟悉——情报分析
- 关于nignx老是报错404的问题
- OpenJudge计算概论-鸡尾酒疗法
- 配置静态路由的下一跳使用出站接口和下一跳IP的差别
- 股票网站数据可视化,成为赌神不再是梦!!!
- ASP.NET技巧:GridView控件自定义分页详解第一页
- 【二 zedboard】PS和PL之间的交互
- web前端渲染和后端渲染(web front-end and back-end rendering)
热门文章
- iOS学习之基本概念
- Delphi运算符及优先级
- ios 内存使用陷阱
- 1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?
- 一年中所有节日的排列顺序_计数问题(二)-排列组合的使用
- halcon 图像差分_Halcon编程-基于纹理的mara检测
- 隐层元素闪一下_太阳一直依靠什么元素在燃烧,地球上的重元素又是怎么来的?...
- 怎么把网页保存到本地计算机,在IE浏览器中,将网页保存到本地计算机中,若只需保存其中的文字、超链接和表格信息,应该选择的保存类型为( )...
- java中datetime类型转换,Java中日期格式和其他类型转换详解
- arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解