Я dill
автор.Это работает, если вы используете настройку recurse
, которая обрабатывает глобальные переменные очень похоже на то, как cloudpickle
обрабатывает глобальные переменные.
>>> import dill
>>> FLAG = 100
>>>
>>> class A:
... def func(self):
... return FLAG*10
...
>>> a = A()
>>> dump = dill.dumps(a.func, recurse=True)
>>> del FLAG
>>> foo = dill.loads(dump)
>>> foo()
1000
>>>
dill
предоставляет несколько настроек, которые предоставляют вам варианты сериализации.Если вы хотите всегда использовать этот параметр, вы можете сделать это:
>>> dill.settings['recurse'] = True