pickle documentation声明“当类实例被 pickle 时,它们的类的数据不会与它们一起被 pickle 。只有实例数据被 pickle 。”谁能提供在 pickling 和 unpickling 时包含类变量和实例变量的方法?
最佳答案
使用 dill
代替 pickle,并准确地按照您可能已经完成的方式进行编码。
>>> class A(object):
... y = 1
... x = 0
... def __call__(self, x):
... self.x = x
... return self.x + self.y
...
>>> b = A()
>>> b.y = 4
>>> b(2)
6
>>> b.z = 5
>>> import dill
>>> _b = dill.dumps(b)
>>> b_ = dill.loads(_b)
>>>
>>> b_.z
5
>>> b_.x
2
>>> b_.y
4
>>>
>>> A.y = 100
>>> c = A()
>>> _c = dill.dumps(c)
>>> c_ = dill.loads(_c)
>>> c_.y
100
关于python - 同时 pickle 类变量和实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26409964/