python - 同时 pickle 类变量和实例变量?

标签 python pickle

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/

相关文章:

python - 通过 Python 使用 Spark 准备我的大数据

python - 如何从字符串中选择某些数字

python - 如何恢复损坏的、部分 pickle 的文件?

Python - Blender Game Engine : _pickle. PicklingError: Can't pickle <class '__main__."a class "'>: attribute lookup "a class"on __main__ failed

python - 当 pickle 一个类时,我在 python 中得到了与在 cython 中不同的行为

python - 如何获得 pickle 中的物体数量?

python - 将 Wordnet 语义映射到 Verbnet

python - 如何枚举实体的反向引用

python - 使用python将文件下载/上传到远程windows服务器

python - Pickle 不工作,因此创建的 txt 文件是空的