0

クラスのインスタンスをディープコピーしようとしていますが、次のようになります。

object has no __deepcopy__ atrribute

エラー。

クラスはでロックされている.pydため、変更できません。

ディープコピーを使用せずにこれらのオブジェクトを値でコピーする方法はありますか?

4

1 に答える 1

1

オブジェクトの状態をコピーする必要があります。最も簡単な方法は、pickleモジュールを使用することです。

import pickle

copy = pickle.loads(pickle.dumps(someobject))

これが機能することは保証されていません。一般的な場合、pickleモジュールが行うのは、インスタンス属性をpickle化し、クラス参照からインスタンスを新しく復元し、その属性の内容を復元することだけです。

これはC拡張オブジェクトであるため、インスタンスの状態が公開されておらず、ピクルスが型によって明示的にサポートされていない場合、これも機能しません。その場合、他に選択肢はありません。恐れ入ります。

于 2013-03-21T16:59:55.613 に答える