3.11 標準モジュール copy

    

このモジュールは、 いわゆる 浅いコピーと深いコピーの演算を提供します。

インターフェース概要:

import copy

x = copy.copy(y)        # yの浅いコピーを作成
x = copy.deepcopy(y)    # yの深いコピーを作成
エラー発生時には, 例外copy.errorが上げられます。

浅いコピーと深いコピーの違いは、複合オブジェクト (リストやクラスインスタンスのように、 他のオブジェクトを持っているオブジェクト)をコピーする場合に 影響します。

浅いコピーにはなくて深いコピーにだけにある問題が2つあります。

パイソンのdeepcopy()操作はこれらの問題を以下の方法で回避しています。

このバージョンはモジュール、クラス、関数、メソッド、またはスタックトレース、 スタックフレーム、またはファイル、ソケット、ウインドウ、または配列、または その他似たようなタイプはコピーしません。

クラスはピクルを制御するために使うのと同じインタフェースをコピーを制御 するために使うことが出来ます。 それらは__getinitargs__(), __getstate__()__setstate__()というメソッドで定義されています。 これらのメソッドに関する情報はモジュールpickleの説明を参照して下さい。      

guido@python.org