浅拷贝与深拷贝有何区别?

2026-05-24 12:531阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计245个文字,预计阅读时间需要1分钟。

浅拷贝与深拷贝有何区别?

Python内置函数:copy(浅拷贝)、deepcopy(深拷贝)+ 浅拷贝:不复制子对象的内部内容,只复制子对象的引用 + 深拷贝:会复制子对象的内存,对子对象的修改不会影响源对象

Python中内置函数: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()

浅拷贝与深拷贝有何区别?


本文共计245个文字,预计阅读时间需要1分钟。

浅拷贝与深拷贝有何区别?

Python内置函数:copy(浅拷贝)、deepcopy(深拷贝)+ 浅拷贝:不复制子对象的内部内容,只复制子对象的引用 + 深拷贝:会复制子对象的内存,对子对象的修改不会影响源对象

Python中内置函数: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()

浅拷贝与深拷贝有何区别?