本文实例讲述了Python设计模式之原型模式。分享给大家供大家参考,具体如下:
原型模式(原型模式):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
一个原型模式的简单演示:
# !/usr/bin/env python # - * -编码:utf - 8 - * __author__=鞍驳稀? ”“” 大话设计模式 设计模式,原型模式 原型模式(原型模式):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 原型模式是用场景:需要大量的基于某个基础原型进行微量修改而得到新原型时使用 ”“” 从复制进口复制,deepcopy #原型抽象类 类原型(对象): def克隆(自我): 通过 def deep_clone(自我): 通过 #工作经历类 类吧(对象): def __init__(自我): 自我。timearea=" self.company=" def set_workexperience(自我、timearea公司): 自我。timearea=timearea self.company=公司 #简历类 类的简历(原型): def __init__(自我、名称): self.name=名字 自我。吧=吧() def set_personinfo(自我、性别、年龄): 自我。=性 自我。年龄=年龄 通过 def set_workexperience(自我、timearea公司): self.workexperience。set_workexperience (timearea公司) def显示(自我): 打印self.name 打印的自我。性,self.age 打印的工作经历’,self.workexperience。timearea, self.workexperience.company def克隆(自我): 返回副本(自我) def deep_clone(自我): 返回deepcopy(自我) if __name__==癬_main__”: 其中obj1=简历(“安迪”) methoda=obj1.clone() #浅拷贝对象 obj3=obj1.deep_clone() #深拷贝对象 obj1.set_personinfo(男,28) obj1.set_workexperience (“2010 - 2015”、“AA”) obj2.set_personinfo(男,27岁) obj2.set_workexperience (“2011 - 2017”、“AA”) #修改浅拷贝的对象工作经历 obj3.set_personinfo(男,29岁) obj3.set_workexperience (“2016 - 2017”、“AA”) #修改深拷贝的对象的工作经历 obj1.display () obj2.display () obj3.display () >之前运行结果:
安迪引用>
男28
工作经历2011 - 2017 AA
安迪
男27
工作经历2011 - 2017 AA
安迪
男29日
工作经历2016 - 2017 AA上面类的设计如下图:
简历类简历继承抽象原型的克隆和deepclone方法,实现对简历类的复制,并且简历类引用工作经历类,可以在复制简历类的同时修改局部属性
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python套接字编程技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
Python设计模式之原型模式实例详解