Python3-2020-测试开发-13- 深浅拷贝

一、定义

"""
浅拷贝和深拷贝

浅拷贝:不拷贝子对象的内容,只拷贝子对象的引用
深拷贝:会将子对象的内存也拷贝,对子对象的修改不会影响源对象
"""

 

 

二、具体实现

2.1  浅拷贝

import copy


def test_copy():

    a = [10,20,[60,70]]

    b = copy.copy(a)

    print("a-----:",a)     # a-----: [10, 20, [60, 70]]
    print("b-----:",b)     # b-----: [10, 20, [60, 70]]

    b.append(30)
    b[2].append(80)

    print("浅拷贝...")
    print("a-----:", a)    # a-----: [10, 20, [60, 70, 80]]
    print("b-----:", b)    # b-----: [10, 20, [60, 70, 80], 30]

修改b的时候,更改了a中的a[2]

 

 

2.2  深拷贝

def test_deep_copy():

    a = [10,20,[60,70]]

    b = copy.deepcopy(a)

    print("a-----:",a)     # a-----: [10, 20, [60, 70]]
    print("b-----:",b)     # b-----: [10, 20, [60, 70]]

    b.append(30)
    b[2].append(80)

    print("深拷贝...")
    print("a-----:", a)    # a-----: [10, 20, [60, 70]]
    print("b-----:", b)    # b-----: [10, 20, [60, 70, 80], 30]

 

posted @ 2020-05-09 18:53  旅行没有终点  阅读(146)  评论(0编辑  收藏  举报