pickleを使用してカスタムクラスを保存しようとしています。以下のコードに非常によく似ています(ただし、クラスでいくつかのメソッドが定義されており、データにはさらにいくつかのdictなどがあります)。ただし、これを実行し、ピクルスしてからアンピクルすると、クラス内のデータがすべて失われ、新しい空白のインスタンスを作成したかのようになります。
import pickle
class MyClass:
VERSION = 1
some_data = {}
more_data = set()
def save(self,filename):
with open(filename, 'wb') as f:
p = pickle.Pickler(f)
p.dump(self)
def load(filename):
with open(filename,'rb') as ifile:
u = pickle.Unpickler(ifile)
obj = u.load()
return obj
これは漬物教室のメモと関係があるのではないかと思っていたのですが、そうあるべきではないと思います。それが機能しないとき、私は生成されたファイルを見ると、次のようになります:(明らかに読み取り可能ではありませんが、明らかにデータが含まれていません)
€c__main__ 私のクラス q
とにかく、これで誰かがここで何が起こっているのか、何を見るべきかを理解するのに十分であることを願っています。