我正在尝试通过网络连接(使用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
添加回答
举报
0/150
提交
取消