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

我正在尝试通过网络连接(使用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()


月关宝盒
浏览 327回答 3
3回答

小唯快跑啊

请查看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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python