我想序列化机器A并在机器B上反序列化python lambda.这有几个明显的问题:
- pickle模块不会序列化或反序列化代码.它只序列化类/方法/函数的名称
- 我在谷歌找到的一些答案建议使用低级编组模块来序列化lambda的func_code属性,但是他们无法描述如何从反序列化的代码对象重建一个函数对象
- marhshal(l.func_code)不会序列化与lambda相关联的闭包,导致检测给定lambda何时真正需要闭包并警告用户他正在尝试序列化使用闭包的lambda的问题
因此,我的问题:
- 如何从反序列化(解组)代码对象重建函数?
- 如果没有关联的闭包,如何检测给定的lambda将无法正常工作?