Direct Assignment: is actually the object's reference (alias).
shallow copy (copy): copies the parent object and does not copy the inner sub-object of the object.
deep Copy (deepcopy): The Deepcopy method of the Copy module, which completely copies the parent object and its child objects.
Example of a shallow copy of a dictionary
={
1
: [
1
,
2
,
3
]}
>>> b
=
a.copy()
>>> a, b
({
1
: [
1
,
2
,
3
]}, {
1
: [
1
,
2
,
3
]})
>>> a[
1
].append(
4
)
>>> a, b
({
1
: [
1
,
2
,
3
,
4
]}, {
1
: [
1
,
2
,
3
,
4
]})
Deep copy requires the introduction of the Copy module:
Instance
1234567 |
>>>
import copy
>>> c
= copy.deepcopy(a)
>>> a, c
({
1
: [
1
,
2
,
3
,
4
]}, {
1
: [
1
,
2
,
3
,
4
]})
>>> a[
1
].append(
5
)
>>> a, c
({
1
: [
1
,
2
,
3
,
4
,
5
]}, {
1
: [
1
,
2
,
3
,
4
]})
|
Analytical
1,B = A: assignment references, both A and B point to the same object.
2, B = a.copy (): shallow Copy, A and B are separate objects, but their child objects still point to a uniform object (which is a reference).
3, B = Copy.deepcopy (a): deep Copy, A and B completely copy the parent object and its child objects, both are completely independent.
Python direct assignment, shallow copy, and deep copy parsing