有没有办法使用标准库在Python中序列化词法闭包?泡菜和元帅似乎不适用于词法封闭.我真的不关心二进制与字符串序列化等细节,它只需要工作.例如:
def foo(bar, baz) :
def closure(waldo) :
return baz * waldo
return closure
Run Code Online (Sandbox Code Playgroud)
我希望能够将闭包实例转储到文件中并将其读回.
编辑:可以解决这个问题的一个相对明显的方法是使用一些反射技巧将词法闭包转换为类对象,反之亦然.然后可以转换为类,序列化,反序列化,转换回闭包.哎呀,鉴于Python是鸭子类型,如果你重载类的函数调用操作符使它看起来像一个函数,你甚至不需要将它转换回闭包,使用它的代码不会知道区别.如果有任何Python反射API大师,请说出来.