备忘录模式:可在不破坏封装的前提下保存并恢复对象状态。Python语言对该模式提供了原生支持。
1、使用pickle对Python对象进行序列化和反序列化
PS1:函数、类也能序列化,文件对象不能序列化
PS2:如果自编的类其__dict__可以序列化,那么该类的实例就可以序列化
import pickle class Boy: def __init__(self, name, age): self.name = name self.age = age b = Boy("alex", 21) # 序列化 xulie = pickle.dumps(b) print(xulie) # 反序列化 b_cp = pickle.loads(xulie) print(b_cp.name, b_cp.age) print(isinstance(b_cp, Boy)) ''' b'x80x03c__main__ Boy qx00)x81qx01}qx02(Xx04x00x00x00nameqx03Xx04x00x00x00alexqx04Xx03x00x00x00ageqx05Kx15ub.' alex 21 True '''
2、使用json序列化字典和列表