首页 > 系统相关 >75:浅拷贝和深拷贝_内存分析

75:浅拷贝和深拷贝_内存分析

时间:2022-11-19 13:56:23浏览次数:46  
标签:10 20 75 内存 print 拷贝 copy append

###浅拷贝和深拷贝

为了更深入的了解参数传递的底层原理,我们需要讲解一下“浅拷贝和深拷贝”。我们可以使用内置函数:copy(浅拷贝)、deepcopy(深拷贝)。

浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。
深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象

# 测试浅拷贝和深拷贝

import copy


def testCopy():
    """测试浅拷贝"""
    a = [10, 20, [5, 6]]
    b = copy.copy(a)

    print("a", a)
    print("b", b)

    b.append(30)
    b[2].append(7)
    print("浅拷贝......")
    print("a", a)
    print("b", b)


def testDeepCopy():
    """测试深拷贝"""
    a = [10, 20, [5, 6]]
    b = copy.deepcopy(a)

    print("a", a)
    print("b", b)
    b.append(30)
    b[2].append(7)
    print("深拷贝......")
    print("a", a)
    print("b", b)


testCopy()
print("*************")
testDeepCopy()

输出结果:

D:\work\python\two\venv\Scripts\python.exe D:\work\python\two\mypy09.py 
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
浅拷贝......
a [10, 20, [5, 6, 7]]
b [10, 20, [5, 6, 7], 30]
*************
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
深拷贝......
a [10, 20, [5, 6]]
b [10, 20, [5, 6, 7], 30]

进程已结束,退出代码0

 

标签:10,20,75,内存,print,拷贝,copy,append
From: https://www.cnblogs.com/yuanzijian/p/16905971.html

相关文章

  • 76:参数的传递_不可变对象含可变子对象_内存分析
    ###传递不可变对象包含的子对象是可变的情况#传递不可变对象时。不可变对象里面包含的子对象是可变的。则方法内修改了这个可变对象,源对象也发生了变化。a=(10,20,......
  • 1759E(方案枚举)
    题目链接题目大意:给你n个数(n个宇航员对应的能量值)一个h,h表示机器人当前的能量值。机器人拥有2中绿色的药剂,一瓶蓝色的药剂。其中绿色的药剂可以使机器人的能量值变为......
  • 71:变量的作用域_全局变量_局部变量_栈帧内存分析讲解
    ###变量的作用域(全局变量和局部变量)变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。全局变量:1.在函数和类定义之......
  • 70:函数也是对象_内存分析
    ###函数也是对象,内存底层分析Python中,“一切都是对象”。实际上,执行def定义函数后,系统就创建了相应的函数对象。我们执行如下程序,然后进行解释:defprint_star():......
  • 67:函数的基本概念_内存分析_函数的分类_定义和调用
    ###函数简介###函数的基本概念1.一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。2.函数是代码复用的通用机制。###Python函数的分类Python中函数分为......
  • 1759D(数位变0)
    题目链接题目大意:给你两个整数n,m。你需要求一个数,它满足如下条件:是n的整数倍,且倍数小于m。你应该使其末尾的0尽可能的多(如100后面有2个零,1020后面有一个零,我们应该......
  • 深拷贝和浅拷贝
    常见浅拷贝的方式:Object.assign()、扩展运算符常见深拷贝的方式:JSON.parse()和JSON.stringify()配合使用浅拷贝只复制一层对象属性深拷贝递归复制所有层    ......
  • C++ZeroMemory内存清零
      看:https://www.cnblogs.com/liming19680104/p/10499280.html         ......
  • JVM内存结构与内存模型
    这篇文章重点讲一下jvm的内存结构和内存模型的知识点。1、内存结构jvm内存区域主要分为线程私有区域【程序计数器,虚拟机栈,本地方法栈】,线程共享区域【堆,方法区】,直接内存......
  • 服务器处理能力估算(CPU、内存、存储)
    2.1 TPC-C标准  TPC-C基准是事务处理委员会建立的一个专门演示在线事务处理性能(OLTP)的性能基准,它的测量方法是为了使客户能够评估不同的在线事务处理系统的性能,这......