我正在尝试将一个相当复杂的对象另存为一个看起来像
的文件import methods
import vars
import matplotlib
import numpy
class Awesome:
def __init__(self, canvasHandle, x, y):
self.alpha = 'jada'
self.bravo = 'bla'
self.graphic, = canvasHandle.ax.plot(x,y,'r-')
...
def show(self):
self.graphic.set_visible(True)
def hide(self):
self.graphic.set_visible(False)
但是,当我运行莳萝和
with open('awesome.job', 'wb') as outputFile:
dill.dump(self.awesome), outputFile)
我得到了错误:
TypeError: can't pickle MplCanvas objects
无论内部有什么内容,如何将对象保存到文件中?可读性并不重要,它只需要转储内存并将其恢复生命...
答案 0 :(得分:0)
我找到了解决方案: 现在,我只传递包含的图形对象,而不是传递画布对象(我这样做是为了通过“ mpl_connect”捕获事件)。使用“ mpl_connect”捕获事件也可以在图形画布上使用,不仅适用于较高级别的画布(因此无需传递它)。现在,莳萝可以正确地保存对象!