13copy

本文最后更新于 2022-05-26 11:25:30

Copy

浅拷贝

只拷贝外层对象 子对象不拷贝

深拷贝

子对象也拷贝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#encoding UTF-8
import copy


class Cpu:
def __init__(self ,name):
self.name=name


class Computer:
def __init__(self,cpu):
self.cpu=cpu


cpu1=Cpu("cpu1")
cpu2=cpu1

print(id(cpu1))
print(id(cpu2))

computer = Computer(cpu1)
computer1 = copy.copy(computer)
print(id(computer),id(computer.cpu))
print(id(computer1),id(computer1.cpu))

computer2 = copy.deepcopy(computer)
print(id(computer),id(computer.cpu))
print(id(computer2),id(computer2.cpu))
# 1731688205520
# 1731688205520
# 1731688204560 1731688205520
# 1731688749376 1731688205520
# 1731688204560 1731688205520
# 1731688749952 1731689024144

13copy
https://jiajun.xyz/2020/10/31/python/01base/13copy/
作者
Lambda
发布于
2020年10月31日
更新于
2022年5月26日
许可协议