实际上,你 可以
用
dill腌它。
dill(例如,在github上)的最新版本具有“设置”,允许在上构造腌制方式的变体
dump。是的,
dill此对象的默认设置失败,但是如果您使用递归跟踪全局引用(即
recurse= True)的设置,则默认设置失败。此设置类似于
cloudpickle默认情况下的设置。
>>> import sympy as sym>>> import pickle>>> import dill>>> a, b = symbols("a, b")>>> a, b = sym.symbols("a, b")>>> expr = sym.sin(a) + sym.cos(b)>>> lambdified_expr = sym.lambdify((a, b), expr, modules="numpy")>>> >>> dill.settings{'recurse': False, 'byref': False, 'protocol': 2, 'fmode': 0}>>> dill.settings['recurse'] = True>>> dill.dumps(lambdified_expr)'x80x02cdill.dilln_create_functionnqx00(cdill.dilln_unmarshalnqx01Ux83cx02x00x00x00x02x00x00x00x03x00x00x00C x00x00sx14x00x00x00tx00x00|x00x00x83x01x00tx01x00|x01x00x83x01x00x17S(x01x00x00x00N(x02x00x00x00tx03x00x00x00sintx03x00x00x00cos(x02x00x00x00tx01x00x00x00atx01x00x00x00b(x00x00x00x00(x00x00x00x00sx08x00x00x00<string>tx08x00x00x00<lambda>x01x00x00x00sx00x00x00x00qx02x85qx03Rqx04}qx05(Ux03cosqx06cnumpy.core.umathncosnqx07Ux03sinqx08cnumpy.core.umathnsinnqtuUx08<lambda>qnNN}qx0btqx0cRqr.'PS我是
dill作者,所以我知道。



