Есть ли способ сохранить переменную результата в памяти, поэтому мне не нужно пересчитывать ее каждый раз, когда я запускаю начало моего script? Я делаю длинную (5-10 секунд) серию точных операций над набором данных (который я читаю с диска) каждый раз, когда я запускаю свой script. Это не будет слишком большой проблемой, так как я довольно хорошо использую интерактивный редактор для отладки моего кода между прогонами; однако иногда интерактивные возможности просто не сокращают его.
Я знаю, что могу написать свои результаты в файл на диске, но я бы хотел избежать этого, если это вообще возможно. Это должно быть решением, которое генерирует переменную при первом запуске script и хранит ее в памяти до тех пор, пока сама оболочка не будет закрыта или пока я явно не скажу, чтобы она исчезла. Что-то вроде этого:
# Check if variable already created this session
in_mem = var_in_memory() # Returns pointer to var, or False if not in memory yet
if not in_mem:
# Read data set from disk
with open('mydata', 'r') as in_handle:
mytext = in_handle.read()
# Extract relevant results from data set
mydata = parse_data(mytext)
result = initial_operations(mydata)
in_mem = store_persistent(result)
У меня есть подозрение, что модуль shelve может быть тем, что я ищу здесь, но выглядит так, чтобы открыть переменную полки, которую я бы нужно указать имя файла для постоянного объекта, и поэтому я не уверен, действительно ли это то, что я ищу.
Какие-нибудь советы по получению полки, чтобы делать то, что я хочу? Любые альтернативные идеи?