問題ステートメント:
Python では、オブジェクトのコピーを作成すると、あるオブジェクトを別のオブジェクトに割り当てるのと同じくらい簡単なことのように思えます。ただし、この単純な割り当てでは、新しい独立したインスタンスではなく、元のオブジェクトへの参照が作成されます。一方のオブジェクトに対する変更は、もう一方のオブジェクトに反映されます。これにより、予期しない動作や潜在的なバグが発生する可能性があります。
解決策: copy.deepcopy() によるディープコピー
オブジェクトの完全に独立したコピーを作成するには、copy モジュールの copy.deepcopy() 関数を使用します。この関数はディープ コピーを実行し、元のオブジェクトのすべての属性と子オブジェクトを再帰的にコピーします。結果のコピーは、独自のメモリの場所と値を持つ独立したオブジェクトになります。
例:
<code class="python">import copy original_obj = {'name': 'Alice', 'age': 30} copy_obj = copy.deepcopy(original_obj) copy_obj['name'] = 'Bob' # Modify copy print(original_obj) # Output: {'name': 'Alice', 'age': 30} (Unchanged) print(copy_obj) # Output: {'name': 'Bob', 'age': 30} (Independent)</code>
この場合、copy_obj はoriginal_obj から完全に独立しています。一方を変更しても、他方には影響しません。これにより、同じ初期プロパティを共有しながら、個別の値を持つ複数のオブジェクトを作成できます。
注:
浅いコピー。 copy.copy() で実現できます。データ構造の値のみをコピーし、含まれる参照はそのまま残します。オブジェクトの独立性を確保するには、通常、ディープ コピーが推奨されます。
以上がPython でオブジェクトの独立したコピーを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。