\

Pythonでは、クラスオブジェクトをコピーするためにはcopyモジュールを使用します。このモジュールにはcopy()deepcopy()の二つの関数があります。

copy()関数

copy()関数は、オブジェクトの「浅いコピー」を作成します。これは、元のオブジェクトとコピーされたオブジェクトが同じ参照を共有することを意味します。

import copy

class A:
    def __init__(self):
        self.x = 0

a = A()
b = copy.copy(a)

a.x = 13
print(a.x)  # 13
print(b.x)  # 0

deepcopy()関数

一方、deepcopy()関数は、オブジェクトの「深いコピー」を作成します。これは、元のオブジェクトとコピーされたオブジェクトが全く別の参照を持つことを意味します。

import copy

class A:
    def __init__(self):
        self.x = 0
        self.y = []

a = A()
b = copy.deepcopy(a)

a.x = 13
a.y.append(0)

print(a.x, a.y)  # 13 [0]
print(b.x, b.y)  # 0 []

このように、Pythonのcopyモジュールを使用することで、クラスオブジェクトのコピーを簡単に作成することができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です