クラスのインスタンスをディープコピーしようとしていますが、次のようになります。
object has no __deepcopy__ atrribute
エラー。
クラスはでロックされている.pyd
ため、変更できません。
ディープコピーを使用せずにこれらのオブジェクトを値でコピーする方法はありますか?
オブジェクトの状態をコピーする必要があります。最も簡単な方法は、pickle
モジュールを使用することです。
import pickle
copy = pickle.loads(pickle.dumps(someobject))
これが機能することは保証されていません。一般的な場合、pickleモジュールが行うのは、インスタンス属性をpickle化し、クラス参照からインスタンスを新しく復元し、その属性の内容を復元することだけです。
これはC拡張オブジェクトであるため、インスタンスの状態が公開されておらず、ピクルスが型によって明示的にサポートされていない場合、これも機能しません。その場合、他に選択肢はありません。恐れ入ります。