Python でディープコピーを使用する方法は?
Pythonにおけるディープコピーとは、新しいオブジェクトを作成し、元のオブジェクトとそのネストされたオブジェクトすべてを完璧に複製する操作です。つまり、新しいオブジェクトは元のオブジェクトとは無関係なコピーとなり、新しいオブジェクトに変更を加えても元のオブジェクトには影響しません。ディープコピーは以下のような方法で実現できます。
- ネイティブな日本語で文を言い換えてください:
- ディープコピー()
import copy
new_obj = copy.deepcopy(original_obj)
- コピーする
- コピーを作成
class MyClass:
def __copy__(self):
# 返回一个浅拷贝的副本
def __deepcopy__(self, memo):
# 返回一个深拷贝的副本
- __copy__() メソッドは、オブジェクトのシャローコピー(浅い複製)を返します。
- __deepcopy__()メソッドは引数のmemo辞書を使用して、すでにコピーされたオブジェクトを追跡することで深コピーのオブジェクトコピーを返し、無限再帰を防ぎます。
なお、ディープコピーは特に大規模な入れ子構造体を取り扱う際には、多大なメモリや計算リソースを要する場合がある点に留意してください。よって、利用シーンに応じて、必ずしもディープコピーが適切であるとは限りません。