Я хотел бы сериализовать на машине A и десериализовать на машине B лямбду python. Есть пара очевидных проблем с этим:
- модуль pickle не сериализует и не десериализует код. Он сериализует только имена классов/методов/функций
- . некоторые из ответов, которые я нашел в Google, предлагают использовать модуль маршала низкого уровня -для сериализации атрибута кода func _лямбды, но они не описывают, как можно восстановить объект функции из десериализованного объекта кода
- marhshal (l.func _код )не будет сериализовать замыкание, связанное с лямбдой, что приводит к проблеме определения того, когда данная лямбда действительно нуждается в замыкании, и предупреждения пользователя о том, что он пытается сериализовать лямбду который использует замыкание
Следовательно, мой вопрос (s):
- как можно восстановить функцию из десериализованного (демаршалированного )объекта кода?
- как определить, что данная лямбда не будет работать должным образом без связанного замыкания?
задан mathieu 9 August 2012 в 07:08
поделиться