0

python docs によると、pickle はクラス インスタンスを透過的に保存および復元できますが、クラス定義はインポート可能であり、オブジェクトが保存されたときと同じモジュールに存在する必要があります。
クラスが保存されているモジュールに pickler/unpickler を配置できますか?
または、クラスをモジュールに入れる必要がありますか? そしてどうやって?外部モジュールのクラスからオブジェクトをピクル/ピクル解除しようとしています。

4

1 に答える 1

1

pickleピクルをロードしたときにモジュールが再度インポートできる限り、任意の python クラス インスタンスをピクルできます。

load()使用する Python コードの場所やは問題ではありません。重要dump()なのは、pickle しようとしているデータを、同じ場所からインポートすることによって後で再度取得できるかどうかだけです。

したがって、foo.barクラスSpamを含むモジュールがある場合、できる限りfrom foo.bar import Spamそのクラスのインスタンスをピクルすることができます。これは、pickle後で同じモジュールからそのクラスを再度ロードできるためです。

于 2013-01-15T23:46:40.333 に答える