本文实例讲述了Python设计模式之原型模式。分享给大家供大家参考,具体如下:
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联公司面向各种领域:报废汽车回收等成都网站设计、营销型网站解决方案、网站设计等建站排名服务。原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
一个原型模式的简单demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式——原型模式 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 原型模式是用场景:需要大量的基于某个基础原型进行微量修改而得到新原型时使用 """ from copy import copy, deepcopy # 原型抽象类 class Prototype(object): def clone(self): pass def deep_clone(self): pass # 工作经历类 class WorkExperience(object): def __init__(self): self.timearea = '' self.company = '' def set_workexperience(self,timearea, company): self.timearea = timearea self.company = company # 简历类 class Resume(Prototype): def __init__(self,name): self.name = name self.workexperience = WorkExperience() def set_personinfo(self,sex,age): self.sex = sex self.age = age pass def set_workexperience(self,timearea, company): self.workexperience.set_workexperience(timearea, company) def display(self): print self.name print self.sex, self.age print '工作经历',self.workexperience.timearea, self.workexperience.company def clone(self): return copy(self) def deep_clone(self): return deepcopy(self) if __name__ == '__main__': obj1 = Resume('andy') obj2 = 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()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:Python设计模式之原型模式实例详解-创新互联
分享地址:https://www.cdcxhl.com/article22/dgjccc.html
成都网站建设公司_创新互联,为您提供全网营销推广、网站策划、品牌网站建设、域名注册、网站改版、云服务器
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联