-[[記憶と再生 その2(Python で人工無能):http://plaza.rakuten.co.jp/kugutsushi/diary/200302170000/]]
-[[Pythonオブジェクトをシリアライズする:http://diveintopython3-ja.rdy.jp/serializing.html]]
* pickle [#a6a6b956]
-シリアライズ
import pickle
:
dic = {1:'りんご', 2:'なし', 3:'みかん'}
f = open('dic.txt', 'w')
pickle.dump(dic, f)
f.close()
-デシリアライズ
import pickle
:
f = open('dic.txt', 'r')
dic = pickle.load(f)
** 使用上の注意 [#u1edf976]
-クラスの __del__() メソッドでシリアライズはしないこと!(はまるよ)
-- __del__() メソッドの呼び出しが起きるのは不安定な状況なので、大抵エラーになる
-- __del__() が呼び出される際には、__del__() メソッドが参照している他のグローバル変数はすでに削除されているかもしれません。__del__() メソッドでは外部の不変関係を維持する上で絶対最低限必要なことだけをすべきです。だとさ。
* marshal [#d7be617b]
-単純なディクショナリやリスト、文字列、整数、複素数、タプルなどを保存するのに使える
-クラスのインスタンスを保存したり、再帰的なオブジェクトを保存することはできない
* shelve [#j14b0593]