web备忘录模式中的类怎么定义
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇"web备忘录模式中的类怎么定义"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"w
千家信息网最后更新 2026年11月04日web备忘录模式中的类怎么定义
这篇"web备忘录模式中的类怎么定义"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"web备忘录模式中的类怎么定义"文章吧。
示例代码
由于Python语言不会检查类型信息,所以不需要定义明确的备忘录类。示例代码的说明从原发器开始,详细内容如下:
class Originator: def __init__(self): self.a= 0 self.b= 0 self.c= 0 defprint(self): print('a=', self.a, ',b=', self.b,',c=', self.c) def set_memento(self, m): self.__dict__ = m def create_memento(self): returncopy.copy(self.__dict__)在示例代码中我们定义了一个包含了三个数据成员的原发器类,它有一个print方法用于输出对象的状态。另外就是生成备忘录的create_memento方法和恢复备忘录的set_memento方法。
用于生成备忘录的create_memento方法则是生成了类成员字典的拷贝并返回,而用于恢复备忘录的set_memento方法只是简单地用备忘录数据替换了自己的成员字典。需要补充一点,create_memento必须取得拷贝是因为只有这样才能保证每次得到的都是对象状态的备份。接下来是测试代码:
if __name__ == "__main__": c = [] o = Originator() o.print() c.append(o.create_memento()) o.a = 1 o.print() c.append(o.create_memento()) o.b = 2 o.print() c.append(o.create_memento()) o.c = 3 o.print() print('start undo') o.print() while len(c): o.set_memento(c.pop()) o.print()创建原发器对象之后,分别修改三个数据成员的值。在每次修改之前都会取得备忘录并保存在列表中,这个列表的作用就相当于责任者类。三次操作之后,再从列表中按照和存入时相反的顺序取出备忘录并交给原发器恢复其状态。执行结果如下:
a= 0 ,b= 0 ,c= 0a= 1 ,b= 0 ,c= 0a= 1 ,b= 2 ,c= 0a= 1 ,b= 2 ,c= 3start undoa= 1 ,b= 2 ,c= 3a= 1 ,b= 2 ,c= 0a= 1 ,b= 0 ,c= 0a= 0 ,b= 0 ,c= 0
可以看到,通过备忘录中保存的数据将原发器完美地恢复到操作之前的状态。
以上就是关于"web备忘录模式中的类怎么定义"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
备忘录
备忘
内容
方法
原发
代码
成员
数据
状态
模式
对象
示例
生成
三个
字典
就是
拷贝
文章
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
什么是科技互联网
深圳恒合互联网络科技有限公司
互联网科技金融
米客互联网科技
互联网科技的未来发展
互联网科技大会
上海卓越科技 互联网
联恩商钥互联网科技有限公司
互联网巨头投资的硬核科技
互联网科技公司招聘
科技互联网的估值
剑昆互联网络科技有限公司临桂
宜昌元轩互联网科技有限公司
开一家科技互联网公司需要多少钱
九思连强互联网电子科技有限公司
互联网时代科技型公司的机会
江苏互联网智能科技产品出厂价
湖北辰鑫科技互联网
知域互联网科技有限公司官网
科技赋能下的互联网金融
北京互联网科技有限公司
高科技与互联网
成都互联网科技公司
互联网科技缩写
齐家互联网科技有限公司
银川新华互联网科技学校地址
须眉科技是互联网公司吗
萌小萌互联网科技河南有限公司
美国五大互联网科技公司市值多少