LINUX.ORG.RU

python сохранить массив функций

 , массив функций


2

1

Скрипт в результате работы генерирует массив функций аля [<function __main__.<lambda>>, <function __main__.<lambda>>, ... ]. Как можно сохранить этот массив в файл что бы использовать в другом скрипте?

★★★★★
dill.source.getsource()

из пакета python3-dill позволит посмотреть исходник каждой лямбды. Сохранить все исходники в файл ну и потом заимпортить его.

karmich
()

Если по-простому, одну простую функцию, то так:

import marshal
from types import FunctionType as func

def my_func(a):
    print(a*10)

bytecode = marshal.dumps(my_func.__code__)
my_func_reborn = func(marshal.loads(bytecode), globals())

my_func(1)
my_func(2)
anonymous
()
Ответ на: комментарий от karmich

Вообще, вся история ввода, при выходе из интерактивного режима, сбрасывается в ~/.python_history. dill использует модуль readline, чтобы найти исходник в этом файле и не сброшенных данных из буфера. Есичо )

anonymous
()

Тред не читал, но в нормальных динамических яп есть маршаллинг

nikolnik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.