2
pickle documentation指出:「當類實例被醃製時,它們的類的數據不會與它們一起被醃製,只有實例數據被醃製。」任何人都可以提供包含類變量以及酸洗和取消時的實例變量的配方嗎?Pickle都是類變量和實例變量?
pickle documentation指出:「當類實例被醃製時,它們的類的數據不會與它們一起被醃製,只有實例數據被醃製。」任何人都可以提供包含類變量以及酸洗和取消時的實例變量的配方嗎?Pickle都是類變量和實例變量?
使用dill
而不是泡菜,代碼確切地說,你可能已經完成了。
>>> 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
這看起來像一個很好的解決方案,謝謝!我會盡快趕上你的。 – rmodrak 2014-10-16 22:00:35
我很好奇,任何人都可以使用標準庫函數提供替代解決方案嗎? – rmodrak 2014-10-16 22:01:59
是的,'dill'只是在封面下使用'copy_reg','save_reduce'和'save_global',所以你可以做同樣的事情......你只需要做更多的工作。 – 2014-10-16 22:07:40