242:オブジェクトを複製する
オブジェクトを複製する汎用的な手段は copy モジュールを使用すること、です。copy 関数は浅いコピー (shallow copy) を、 deepcopy 関数は深いコピー (deep copy) を行います。
>>> import copy >>> a = [[1, 1], [2, 2], [3, 3]] >>> b = copy.copy(a) >>> c = copy.deepcopy(a) >>> a[0].append(9) >>> a [[1, 1, 9], [2, 2], [3, 3]] >>> b [[1, 1, 9], [2, 2], [3, 3]] >>> c [[1, 1], [2, 2], [3, 3]]
自作クラスもこの copy モジュールでコピーできます。より詳しい情報はライブラリリファレンスの copy にあります。
>>> class A(object): ... def __init__(self, a): ... self.a = a ... >>> a = A(1) >>> b = copy.copy(a) >>> a.a 1 >>> b.a 1