web备忘录模式中的类怎么定义
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇"web备忘录模式中的类怎么定义"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"w
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
关于网络安全防控疫情的诗
方圆软件开发
网络安全效能考核自评报告
网吧怎么打开云服务器管理器
账号注销数据库还有数据吗
软件开发进度实例
网络安全高级管理员证书
软件开发要不要考证
剑三 哪个服务器好
中国英皇黑客组织数据库
空间数据库课件
海南服务器包装公司报价
社旗定制软件开发公司
北大有匹配好的工业企业数据库吗
acess合并多行数据库
金士顿服务器内存带马甲吗
网上买菜软件开发
支付宝的软件开发人
jmeter数据库参数化
aix 服务器进程查看
G3网络安全教育
榆林市中小学生网络安全教育
服务器只能安装2008
惠普服务器r720如何取出
网络技术如何促进道德发展
修改dns服务器
网络安全带给我的启示
魔兽世界怀旧服务器试玩
我的世界手机版梦想精灵谷服务器
如何保障服务器数据安全