Код: Выделить всё
pickle_from< /code>, pickle_to < /code>), я бы хотел: < /p>
загрузить и вернуть маринованный объект, расположенный по адресу pickle_from < /code>, если Pickle_from
< /ul>
с помощью одной функции это просто. Если Pickle_from не нулевой, функция просто загружает маринованный результат и возвращает его. В противном случае он выполняет некоторое время, интенсивное расчет с , сбрасывает это в Pickle_to , и возвращает результат расчета.
Код: Выделить всё
try:
import cPickle as pickle
except:
import pickle
def somefunc(a, pickle_from=None, pickle_to=None):
if pickle_from:
with open(pickle_from + '.pickle', 'rb') as f
res = pickle.load(f)
else:
# Re-calcualte some time-intensive func call
res = a ** 2
if pickle_to:
# Update pickled data with newly calculated `res`
with open(pickle_to + '.pickle', 'wb') as f:
pickle.dump(res, f)
return res
Я бы хотел писать что -то вроде: < /p>
@pickle_option
def somefunc(a, pickle_from=None, pickle_to=None)
# or do params need to be in the decorator call?
# remember, "the files are in the computer"
res = a ** 2
return res
< /code>
Это возможно? Что -то в декораторах заставляет мою голову взорваться, поэтому я буду вежливо отказаться, чтобы опубликовать здесь: «То, что я пробовал».
Подробнее здесь: https://stackoverflow.com/questions/458 ... ion-result