python docs によると、pickle はクラス インスタンスを透過的に保存および復元できますが、クラス定義はインポート可能であり、オブジェクトが保存されたときと同じモジュールに存在する必要があります。
クラスが保存されているモジュールに pickler/unpickler を配置できますか?
または、クラスをモジュールに入れる必要がありますか? そしてどうやって?外部モジュールのクラスからオブジェクトをピクル/ピクル解除しようとしています。
1 に答える
1
pickleピクルをロードしたときにモジュールが再度インポートできる限り、任意の python クラス インスタンスをピクルできます。
load()使用する Python コードの場所やは問題ではありません。重要dump()なのは、pickle しようとしているデータを、同じ場所からインポートすることによって後で再度取得できるかどうかだけです。
したがって、foo.barクラスSpamを含むモジュールがある場合、できる限りfrom foo.bar import Spamそのクラスのインスタンスをピクルすることができます。これは、pickle後で同じモジュールからそのクラスを再度ロードできるためです。
于 2013-01-15T23:46:40.333 に答える