猿问

Cant Pickle记忆类实例

这是我正在使用的代码


import funcy


@funcy.memoize

class mystery(object):


    def __init__(self, num):

        self.num = num


feat = mystery(1)


with open('num.pickle', 'wb') as f:

    pickle.dump(feat,f)

这给了我以下错误:


PicklingError: Can't pickle <class '__main__.mystery'>: it's not the 

same object as __main__.mystery

我希望1)理解为什么会发生这种情况,2)找到一种解决方案,使我可以对对象进行腌制(不删除备忘录)。理想情况下,该解决方案不会更改对pickle的调用。


使用funcy == 1.10运行python 3.6


至尊宝的传说
浏览 198回答 2
2回答

收到一只叮咚

另一种方法是class _mystery(object):&nbsp; &nbsp; def __init__(self, num):&nbsp; &nbsp; &nbsp; &nbsp; self.num = num@funcy.memoizedef mystery(num):&nbsp; &nbsp; return _mystery(num)
随时随地看视频慕课网APP

相关分类

Python
我要回答