Как вызвать функциональные и никогда больше не вычислять в python?

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

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

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

Кешируйте результат. Скорее всего, записав его в файл, а затем снова прочитав из него.

deceze 10.09.2018 09:17

Если всегда возвращает тот же результат, вы можете просто жестко закодировать значение вместо фактической реализации.

jonrsharpe 10.09.2018 09:20
3
2
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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)

Другие вопросы по теме