使用 __setstate__ 和 __getstate__ 的简单示例

2024-03-07

我不知道是什么__setstate__ and __getstate__方法可以,所以请帮我举一个简单的例子。


这是一个非常简单的 Python 示例,应该补充泡菜文档 http://docs.python.org/library/pickle.html#pickle-protocol.

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)

Output:

I'm being pickled
I'm being unpickled with these values: {'val': 4}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 __setstate__ 和 __getstate__ 的简单示例 的相关文章

随机推荐