сериализация и десериализация лямбд

Я хотел бы сериализовать на машине A и десериализовать на машине B лямбду python. Есть пара очевидных проблем с этим:

  • модуль pickle не сериализует и не десериализует код. Он сериализует только имена классов/методов/функций
  • . некоторые из ответов, которые я нашел в Google, предлагают использовать модуль маршала низкого уровня -для сериализации атрибута кода func _лямбды, но они не описывают, как можно восстановить объект функции из десериализованного объекта кода
  • marhshal (l.func _код )не будет сериализовать замыкание, связанное с лямбдой, что приводит к проблеме определения того, когда данная лямбда действительно нуждается в замыкании, и предупреждения пользователя о том, что он пытается сериализовать лямбду который использует замыкание

Следовательно, мой вопрос (s):

  • как можно восстановить функцию из десериализованного (демаршалированного )объекта кода?
  • как определить, что данная лямбда не будет работать должным образом без связанного замыкания?
16
задан mathieu 9 August 2012 в 07:08
поделиться