Результат функции ввода/вывода для ввода/выводаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Результат функции ввода/вывода для ввода/вывода

Сообщение Anonymous »

Учитывая функцию с параметром A и двумя другими параметрами (

Код: Выделить всё

pickle_from< /code>, pickle_to < /code>), я бы хотел: < /p>


 загрузить и вернуть маринованный объект, расположенный по адресу pickle_from < /code>, если Pickle_from 
не является ни одного . Если это нет , вычислите некоторую функцию и вернуть ее. > не это < /code>. < /li>
< /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
Мой вопрос относится к тому, как построить декоратор, чтобы этот процесс мог сформировать оболочку вокруг нескольких функций, аналогичных comefunc ,, Сокращение исходного кода в процессе. < /p>

Я бы хотел писать что -то вроде: < /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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»