私は違いを理解copy対deepcopyコピーモジュール内を。私は以前は成功裏に使用copy.copyしcopy.deepcopyてきましたが、__copy__および__deepcopy__メソッドのオーバーロードについて実際に行ったのはこれが初めてです。私はすでにを通じて周りGoogleで検索して見てきたのインスタンスを探すためにPythonモジュールを内蔵__copy__し、__deepcopy__機能(例えばsets.py、decimal.py、およびfractions.py)が、私はまだ100%でないことを確認、私はそれを右に持っているんです。
これが私のシナリオです:
設定オブジェクトがあります。最初に、デフォルトの値のセットを使用して1つの構成オブジェクトをインスタンス化します。この構成は、他の複数のオブジェクトに渡されます(すべてのオブジェクトが同じ構成で開始されるようにするため)。ただし、ユーザーインタラクションが開始すると、各オブジェクトは、互いの構成に影響を与えずに、その構成を個別に微調整する必要があります(つまり、手渡しするために、初期構成のディープコピーを作成する必要があると言います)。
次にオブジェクトの例を示します。
class ChartConfig(object):
def __init__(self):
#Drawing properties (Booleans/strings)
self.antialiased = None
self.plot_style = None
self.plot_title = None
self.autoscale = None
#X axis properties (strings/ints)
self.xaxis_title = None
self.xaxis_tick_rotation = None
self.xaxis_tick_align = None
#Y axis properties (strings/ints)
self.yaxis_title = None
self.yaxis_tick_rotation = None
self.yaxis_tick_align = None
#A list of non-primitive objects
self.trace_configs = []
def __copy__(self):
pass
def __deepcopy__(self, memo):
pass
このオブジェクトにcopyおよびdeepcopyメソッドを実装して適切な動作を確実にcopy.copyしcopy.deepcopyてくれる正しい方法は何ですか?