__setstate__ と __getstate__ の簡単な使用例 質問する

__setstate__ と __getstate__ の簡単な使用例 質問する

__setstate__およびメソッドが何をするのか分からない__getstate__ので、簡単な例を挙げて教えてください。

ベストアンサー1

これはPythonの非常に簡単な例です。ピクルスドキュメント

class Foo(object):
  def __init__(self, val=2):
     self.val = val
  def __getstate__(self):
     print("I'm being pickled")
     self.val *= 2
     return self.__dict__
  def __setstate__(self, d):
     print("I'm being unpickled with these values: " + repr(d))
     self.__dict__ = d
     self.val *= 3

import pickle
f = Foo()
f_data = pickle.dumps(f)
f_new = pickle.loads(f_data)

出力:

I'm being pickled
I'm being unpickled with these values: {'val': 4}

おすすめ記事