Как вызвать функцию и никогда больше не вычислять в python? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть функция F (), которая отнимает много времени, но всегда возвращает один и тот же результат.

Я хотел бы иметь возможность пропустить этот вызов и сразу получить результат при следующем запуске моей программы.

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Сохраните результат F () в файле XML и просто поместите условие в начало вашей программы, если файл XML существует => загрузите в него данные, иначе запустите вашу функцию.

Не забудьте сохранить свой результат в XML-файле в и из вашей F ().

0 голосов
/ 10 сентября 2018

Я бы записал результаты в файл. Какой файл зависит от результата вашей функции.

Один из вариантов - написать как рассол.

import pickle
result = F()

with open('filename.pickle', 'wb') as pfile:
    pickle.dump(result, pfile)

в следующий раз вы можете получить результат с помощью этого кода вместо запуска вашей функции F ()

with open('filename.pickle', 'rb') as pfile:
    result = pickle.load(pfile)
...