Python 是如何copy对象的

我们平时工作的时候,经常复制一段文字、一个文件保存到另外地方,或者发送消息,这就是通过COPY一段文字、一个文件。

那我们在python中代码编制中是如何实现对象复制的呢?

我们看看我们通过对一个变量赋值,然后赋值给另外一个变量,好像和复制差不多,感觉差不多,那算不算copy呢?

a = 1

b=a

我们这样赋值 b 也是1了,但它确实不算copy,因为它不会创建新的对象,原则上是a的一个引用。我们通过修改a的时候,b也发生相应改变来证明这一点。

下面我们看看copy的实现:

a = [1, 2, [3, 4]]

b = a.copy() # 浅拷贝

print(b)#输出b看看

当然我们也可以调用copy模块来实现:

import copy

a = [1, 2, [3, 4]]

b = copy.copy(a) # 浅拷贝

print(b)

同样也是可以实现copy的效果

我们再来看下面的代码,最好还是自己也调试运行下

import copy

a = [1, 2, [3, 4]]

b = copy.deepcopy(a)#深度拷贝

a[2][0] = 300 # 修改嵌套元素,不会影响 b 创建了新的对象

print(b) # 输出 [1, 2, [3, 4]]


我们发现b是a一个copy ,但是我们修改a,b 依旧不发生改变,和引用是不一样的,我们很容易发现复制不会产生新对象,浅拷贝、深度拷贝都产生了新的对象,我们在实际工作中,避免使用引用修改了原来的值,我们在这种情况下,我们应该考虑copy,避免改变原值导致意外修改。

相关文章

Python中如何复制列表

我们怎么复制一个列表呢,我们来看看下面代码list_test = [1, 2, 3]copy_list = list_test # 这只是引用,指向同一个内存地址copy_list[0] = 99pr...

python入门012:复制列表

一、复制列表复制列表即根据既有列表创建新的列表。1、切片复制我们可以通过创建一个包含原列表所有元素的切片,从而实现复制列表。方法是,切片区间同时省略元素的起始索引和终止索引,即[:],也就是创建一个初...

python学习——021列表里复制和引用的区别

Python 里列表复制和列表引用的区别,下面通过示例来详细分析:列表复制list_a = ['a', 'b', 'c'] list_b = list...

Python文件操作基础指南

以下是一份详细的 Python 基础文件操作指南,包含常见操作和示例代码:一、文件操作基本流程打开文件 → 2. 操作文件 → 3. 关闭文件二、打开文件使用 open() 函数:python复制fi...

Python目录与文件操作教程

大家好,我是ICodeWR。今天要记录的是 如何使用Python进行常见的目录和文件操作。Python提供了强大的内置模块来处理文件和目录操作。1. 基本模块介绍Python中主要使用以下模块进行文件...

python组织和管理代码:模块和包、子模块和子包概念及举例

在Python中,模块和包是组织和管理代码的重要概念。同时,模块和包可以包含子模块和子包。下面我将为你详细解释这些概念。模块和包、子模块和子包的概念模块:模块是一个包含 Python 代码的文件,它可...