这是同一问题的解决方案:
但是,当文档有很多链接时(特别是当链接位于表格中时),此解决方案将无法正常工作。
还有其他解决方案吗?谢谢你的帮助!
这是一个示例代码,其中FLAG是全局变量。该方法A.func对我来说是一个黑匣子,因此我不知道它FLAG在序列化之前调用。
import dill as pickle
FLAG = 100
class A:
def func(self):
print FLAG * 10
a = A()
dump = pickle.dumps(a.func)
del FLAG
foo = pickle.loads(dump) <-- fail here "NameError: global name 'FLAG' is not defined"
foo()
Run Code Online (Sandbox Code Playgroud)
在相关问题中:
最实用的解决方案是使用cloudpickle. 但似乎dill比 更强大cloudpickle。所以我想坚持使用dill或其他成熟的腌制器。
如果有必要的话,我不介意dill自己修改一些代码。
感谢您提前提供任何帮助:)