Постоянство объекта Python в течение повторного выполнения - PullRequest
1 голос
/ 17 мая 2011

Где найти способ сохранения объектов через повторное выполнение запущенного скрипта? Если я хочу, чтобы выполняющийся сценарий самопроизвольно выполнялся для получения изменений в коде (os.exec *), существует ли способ сохранить объекты для доступа после повторного выполнения? Я мог бы установить переменные окружения с маринованными данными ascii или записать эти данные в канал и перечитать их после повторного выполнения, но это кажется не элегантным или похоже на хак. Даже если это сделать, не все продукты хорошо засолятся.

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Если вы поместите свой код в модуль, вы можете использовать стандартную функцию reload() для загрузки новой версии кода.Ваш основной модуль может выглядеть так:

import mymodule

while mymodule.go():
    reload(mymodule)

Всякий раз, когда вы захотите перезагрузить код своего модуля, верните True из go().Если вы хотите выйти, верните False.

1 голос
/ 17 мая 2011

Выезд shelve.

import shelve

db = shelve.open("database", "c")
db["one"] = 1
db["two"] = 2
db["three"] = 3
db.close()
...