为此,我将使用dill,它可以将python中的几乎所有内容序列化。Dill还有一些很好的工具,可以帮助您了解在代码失败时导致酸洗失败的原因。
>>> import dill>>> dill.loads(dill.dumps(your_bad_object))>>> ...>>> # if you get a pickling error, use dill's tools to figure out a workaround>>> dill.detect.badobjects(your_bad_object, depth=0)>>> dill.detect.badobjects(your_bad_object, depth=1)>>> ...
如果绝对需要,则可以使用莳萝
badobjects(或其他检测功能之一)递归地深入对象的参考链,并d出无法钻探的对象,而不是像上面那样在每个深度调用它。
同样,objgraph对测试套件也很方便。
>>> # visualize the references in your bad objects>>> objgraph.show_refs(your_bad_object, filename='your_bad_object.png')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)