ホームページ >バックエンド開発 >Python チュートリアル >Python でオブジェクトの独立したコピーを作成するには?

Python でオブジェクトの独立したコピーを作成するには?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 17:37:29723ブラウズ

How to Create Independent Copies of Objects in Python?

Python でのオブジェクトのコピー: 独立したインスタンス

問題ステートメント:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。