как сохранять/читать класс полностью в Python

som = SOM_CLASS() # includes many big difficult data structures
som.hard_work()
som.save_to_disk(filename)
#then later or another program
som = SOM_CLASS()
som.read_from_file(filename)
som.do_anythink_else()

или

som = SOM_CLASS()
save(som)
#...
load(som)
som.work()

что самый легкий путь состоит в том, чтобы сделать это?

10
задан Mike 26 February 2010 в 22:04
поделиться

2 ответа

Вы можете (де) сериализовать с помощью pickle . Он обратно совместим, то есть будет поддерживать все старые протоколы в будущих версиях.

import pickle

som = SOM_CLASS()
fileObject = <any file-like object>
pickle.dump(som, fileObject)
#...
som = pickle.load(fileObject)
som.work()

Но учтите, что если вы переносите маринованные объекты на другой компьютер, убедитесь, что соединение не может быть изменено, поскольку pickle может быть небезопасным (эту статью должен знать каждый пользователь pickle).

Другой альтернативой является старый модуль marshal .

15
ответ дан 3 December 2019 в 17:58
поделиться

Взгляните на библиотеку Python pickle .

3
ответ дан 3 December 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: