Pythonでは、オブジェクトをコピーするためにはcopy
モジュールを使用します。このモジュールは、シャローコピーとディープコピーの2つの操作を提供しています。
シャローコピー
シャローコピーは、新しい複合オブジェクトを作成し、元のオブジェクトに存在するオブジェクトへの参照を可能な限り挿入します。Pythonの辞書のシャローコピーはdict.copy()
を使用して作成できます。
original_dict = {'key': 'value'}
shallow_copy = original_dict.copy()
ディープコピー
ディープコピーは、新しい複合オブジェクトを作成し、元のオブジェクトに存在するオブジェクトのコピーを再帰的に挿入します。ディープコピーはcopy.deepcopy()
関数を使用して作成できます。
from copy import deepcopy
original_object = SomeObject()
deep_copy = deepcopy(original_object)
ディープコピーは、元のオブジェクトと完全に独立した新しいオブジェクトを作成します。したがって、新しいオブジェクトのフィールドの値を変更しても、元のオブジェクトには影響しません。
以上がPythonでオブジェクトをコピーする基本的な方法です。適切なコピー方法を選択することで、プログラムの挙動をより正確に制御することができます。