您可以使用任何pickle模块来pickle方法python方法对象吗?

您可以使用任何pickle模块来pickle方法python方法对象吗?,python,pickle,Python,Pickle,我有一个长时间运行的脚本,它执行的操作可以分解为独立但顺序敏感的函数调用。此外,这里的模式是在图形上进行面包优先遍历,在崩溃后重新启动深度不是一个好的选择 因此,我的想法如下:在脚本运行时,维护函数参数对列表。此列表对应于图形深度优先搜索的打开列表。数据很容易获取,所以我不必担心丢失它 在由于网络条件或错误导致崩溃(可能不可避免)的情况下,函数参数对列表足以恢复操作 那么,我可以存储这些函数吗?我的直觉是否定的,但在我做出判断之前,我希望得到一些建议 如果参数才是最重要的,为什么不存储参数呢?只

我有一个长时间运行的脚本,它执行的操作可以分解为独立但顺序敏感的函数调用。此外,这里的模式是在图形上进行面包优先遍历,在崩溃后重新启动深度不是一个好的选择

因此,我的想法如下:在脚本运行时,维护函数参数对列表。此列表对应于图形深度优先搜索的打开列表。数据很容易获取,所以我不必担心丢失它

在由于网络条件或错误导致崩溃(可能不可避免)的情况下,函数参数对列表足以恢复操作


那么,我可以存储这些函数吗?我的直觉是否定的,但在我做出判断之前,我希望得到一些建议

如果参数才是最重要的,为什么不存储参数呢?只需将其存储为一个直元组

您可以pickle普通函数。Python存储名称和模块,并使用它们来重新加载它。如果你想对方法做同样的事情,那就有点棘手了。可以通过将这些物体分解成组成部分并进行酸洗来实现。

您试过了吗?(令人惊讶的结尾:是的,你可以。)我会这样做,但唯一的问题是我调用了多个函数,所以我需要对函数本身进行pickle。我想我可以对函数名本身进行pickle,然后使用
module.getattr
获取它。这就足够了。我想我应该说函数而不是方法。这对修饰过的方法和类似的方法是如何工作的,其中仅名称不一定能识别函数?@Alex,这可能是错误的。Pickle有很多定制选项,所以您可能可以绕过它。