Я читал в ряде потоков, что Python pickle
/cPickle
не может расчехлять лямбда-функции. Однако следующий код работает, используя Python 2.7.6:
import cPickle as pickle
if __name__ == "__main__":
s = pickle.dumps(lambda x, y: x+y)
f = pickle.loads(s)
assert f(3,4) == 7
Так что происходит? Или, точнее, каков предел травля лямбдов?
[EDIT] Я думаю, я знаю, почему этот код работает. Я забыл (извините!) Я запускаю стековый пейтон, который имеет форму микропотоков, называемых tasklets, выполняющих функцию. Эти цепочки можно остановить, мариновать, рассыпать и продолжить, поэтому я предполагаю (заданный в списке рассылки без стекол), что он также обеспечивает способ рассортировки тел функций.