不能在python 3中腌制lambda函数
发布时间:2020-12-20 12:13:21 所属栏目:Python 来源:网络整理
导读:使用莳萝酸洗lambda函数在 Python 2中运行良好,但在Python 3中没有,有没有其他选择? Python 3: import dill import picklepickle.dumps(lambda x: x**2) pickle.PicklingError: Can’t pickle at 0x104e97840: attribute lookup on main failed Python 2.7
使用莳萝酸洗lambda函数在
Python 2中运行良好,但在Python 3中没有,有没有其他选择?
Python 3: import dill import pickle pickle.dumps(lambda x: x**2)
Python 2.7: import dill import pickle pickle.dumps(lambda x: x**2)
解决方法
好像在python 2中,dill在导入时会替换pickle.在python 3中,你必须直接使用dill.
这适用于python 3.5: >>> import dill >>> dill.dumps(lambda x: x**2) b'x80x03cdill.dilln_create_functionnqx00(cdill.dilln_load_typenqx01Xx08x00x00x00CodeTypeqx02x85qx03Rqx04(Kx01Kx00Kx01Kx02KCCx08|x00x00dx01x00x13Sqx05NKx02x86qx06)Xx01x00x00x00xqx07x85qx08Xx07x00x00x00<stdin>qtXx08x00x00x00<lambda>qnKx01Cx00qx0b))tqx0cRqrc__builtin__n__main__nhnNN}qx0etqx0fRqx10.' 或者,您也可以将莳萝作为泡菜进口 >>> import dill as pickle >>> pickle.dumps(lambda x: x**2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |