ホームページ >バックエンド開発 >Python チュートリアル >Pythonのディープコピーとシャローコピー
copy.copy 浅いコピーは親オブジェクトのみをコピーし、オブジェクトの内部の子オブジェクトはコピーしません。
copy.deepcopy ディープ コピー オブジェクトとそのサブオブジェクト
例:
>>> a=[1,2,3,4,['a' ,'b']]
>>> b=a # 参照を渡します。 b と a が同じメモリ領域を指しているのと同じです。 c と a が 2 つの別個のメモリ領域になったことに相当します
>>> d=copy.deepcopy(a) # ディープコピー。完全に独立したメモリ領域に相当します
>>>> append('c') # これは内部サブオブジェクトですつまり、依然として を指します。
の部分>>> print 'a',a
a [1, 2, 3, 4, ['a' , 'b', 'c'], 5]
>> > 'b',b
b [1, 2, 3, 4, ['a', 'b', 'c' ], 5]
>>> 'c',c を印刷
c [1, 2, 3, 4, ['a', 'b', 'c']]
>> print 'd',d
d [1, 2, 3, 4, ['a', 'b']]
>>> コピーした場合、それらは互いに独立しています。
copy.copy と同様、浅いコピーは親オブジェクトであるため実際に作成されます。親オブジェクトは影響を受けず、2 つの別々の領域があります。
結論: どちらをコピーしても、別のメモリ領域になります。元の記憶とは別のものです。どんなに修正しても私には影響しません