「オブジェクトをセーブ(保存)する」パターンです。
Pythonのビルトイン機能で実現可能です。
あるインスタンス(Hogeクラスのインスタンス)をpickle化により保存します。
import pickle
filepath_pickle = "instance.pickle"
def main1():
hoge = Hoge("huga")
with open(filepath_pickle, mode='wb') as f:
pickle.dump(hoge, f)
hoge.print_hoge()
def main2():
with open(filepath_pickle, mode='rb') as f:
hoge2 = pickle.load(f)
hoge2.print_hoge()
class Hoge:
def __init__(self, hoge):
self.hoge = hoge
def print_hoge(self):
print("hoge:", self.hoge)
if __name__ == "__main__":
main1()
print("---")
main2()
pickle化は以下のコードで行うことができます。 pickle化はバイナリで行われるため、modeに”b”をつける必要があります。
import pickle
with open({ファイルのパス}, mode='wb') as f:
pickle.dump({pickle化したい変数}, f)
非pickle化は以下のコードで行うことができます。
with open({ファイルのパス}, mode='rb') as f:
{代入先} = pickle.load(f)
代入したあとはpickle前と同様に使用することができます。
pickle化を使うことでMementoパターンを実現することができます。
特になし