为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一种简单的方法来腌制python函数(或以其他方式序列化其代码)?

是否有一种简单的方法来腌制python函数(或以其他方式序列化其代码)?

月关宝盒 2019-12-11 11:09:18
我正在尝试通过网络连接(使用asyncore)传输功能。是否有一种简单的方法来序列化python函数(至少在这种情况下不会有副作用)以进行这样的传输?理想情况下,我希望有一对类似于以下的函数:def transmit(func):    obj = pickle.dumps(func)    [send obj across the network]def receive():    [receive obj from the network]    func = pickle.loads(s)    func()
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

请查看Dill,它扩展了Python的pickle库以支持更多类型,包括函数:


>>> import dill as pickle

>>> def f(x): return x + 1

...

>>> g = pickle.dumps(f)

>>> f(1)

2

>>> pickle.loads(g)(1)

2

它还支持对函数闭包中对象的引用:


>>> def plusTwo(x): return f(f(x))

...

>>> pickle.loads(pickle.dumps(plusTwo))(1)

3



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 326 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信