要一直走下去

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

备忘录模式:  打Boss之前角色生命值100%, 打boss失败,回档重新打。

Role类 存生命值, Role类有save方法用于存档,有load方法用于回档。save和load使用序列化和反序列化来实现

ps:传统备忘录模式是持久化在内存中的对象里,一般不用这种方式

代码略

 

 

 

 

 

 

 

 

 

 

 

备忘录模式:可在不破坏封装的前提下保存并恢复对象状态。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'\x80\x03c__main__\nBoy\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x04\x00\x00\x00alexq\x04X\x03\x00\x00\x00ageq\x05K\x15ub.'
alex 21
True
'''

 

2、使用json序列化字典和列表

posted on 2019-10-11 12:58  要一直走下去  阅读(124)  评论(0编辑  收藏  举报