欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python設(shè)計(jì)模式之原型模式實(shí)例詳解

 更新時(shí)間:2019年01月18日 08:43:29   作者:Andy冉明  
這篇文章主要介紹了Python設(shè)計(jì)模式之原型模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python原型模式的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python設(shè)計(jì)模式之原型模式。分享給大家供大家參考,具體如下:

原型模式(Prototype Pattern):用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象

一個(gè)原型模式的簡(jiǎn)單demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——原型模式
原型模式(Prototype Pattern):用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象
原型模式是用場(chǎng)景:需要大量的基于某個(gè)基礎(chǔ)原型進(jìn)行微量修改而得到新原型時(shí)使用
"""
from copy import copy, deepcopy
# 原型抽象類
class Prototype(object):
  def clone(self):
    pass
  def deep_clone(self):
    pass
# 工作經(jīng)歷類
class WorkExperience(object):
  def __init__(self):
    self.timearea = ''
    self.company = ''
  def set_workexperience(self,timearea, company):
    self.timearea = timearea
    self.company = company
# 簡(jiǎn)歷類  
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 '工作經(jīng)歷',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() # 淺拷貝對(duì)象
  obj3 = obj1.deep_clone() # 深拷貝對(duì)象
  obj1.set_personinfo('男',28)
  obj1.set_workexperience('2010-2015','AA')
  obj2.set_personinfo('男',27)
  obj2.set_workexperience('2011-2017','AA') # 修改淺拷貝的對(duì)象工作經(jīng)歷
  obj3.set_personinfo('男',29)
  obj3.set_workexperience('2016-2017','AA') # 修改深拷貝的對(duì)象的工作經(jīng)歷
  obj1.display()
  obj2.display()
  obj3.display()

運(yùn)行結(jié)果:

andy
男 28
工作經(jīng)歷 2011-2017 AA
andy
男 27
工作經(jīng)歷 2011-2017 AA
andy
男 29
工作經(jīng)歷 2016-2017 AA

上面類的設(shè)計(jì)如下圖:

簡(jiǎn)歷類Resume繼承抽象原型的clone和deepclone方法,實(shí)現(xiàn)對(duì)簡(jiǎn)歷類的復(fù)制,并且簡(jiǎn)歷類引用工作經(jīng)歷類,可以在復(fù)制簡(jiǎn)歷類的同時(shí)修改局部屬性

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python中pyplot基礎(chǔ)圖標(biāo)函數(shù)整理

    python中pyplot基礎(chǔ)圖標(biāo)函數(shù)整理

    在本篇文章里小編給大家整理的是一篇關(guān)于python中pyplot基礎(chǔ)圖標(biāo)函數(shù)整理的相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以參考下。
    2020-11-11
  • Python標(biāo)準(zhǔn)庫(kù)之os模塊詳解

    Python標(biāo)準(zhǔn)庫(kù)之os模塊詳解

    Python的os模塊是用于與操作系統(tǒng)進(jìn)行交互的模塊,它提供了許多函數(shù)和方法來執(zhí)行文件和目錄操作、進(jìn)程管理、環(huán)境變量訪問等,本文詳細(xì)介紹了Python標(biāo)準(zhǔn)庫(kù)中os模塊,感興趣的同學(xué)跟著小編一起來看看吧
    2023-08-08
  • django 常用orm操作詳解

    django 常用orm操作詳解

    下面小編就為大家?guī)硪黄猟jango 常用orm操作詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • xshell會(huì)話批量遷移到mobaxterm的工具(python小工具)

    xshell會(huì)話批量遷移到mobaxterm的工具(python小工具)

    這篇文章主要介紹了xshell會(huì)話批量遷移到mobaxterm的工具,使用方法也超級(jí)簡(jiǎn)單,本文通過python代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Python基礎(chǔ)知識(shí)快速上手入門學(xué)習(xí)

    Python基礎(chǔ)知識(shí)快速上手入門學(xué)習(xí)

    本篇文章使用代碼示例,一看就會(huì),從基礎(chǔ)語法、變量類型、運(yùn)算符和條件語句多個(gè)方面詳細(xì)闡述了Python基礎(chǔ)知識(shí)快速上手入門學(xué)習(xí)的內(nèi)容,希望本文能對(duì)Python初學(xué)者有所幫助
    2023-08-08
  • Python經(jīng)典案例之圖像漫水填充分割詳解

    Python經(jīng)典案例之圖像漫水填充分割詳解

    圖像分割是將圖像分成若干具有獨(dú)特性質(zhì)的區(qū)域并提取感興趣目標(biāo)的技術(shù)和過程,這篇文章將詳細(xì)講解漫水填充分割應(yīng)用,感興趣的小伙伴可以了解一下
    2023-01-01
  • Python基于Serializer實(shí)現(xiàn)字段驗(yàn)證及序列化

    Python基于Serializer實(shí)現(xiàn)字段驗(yàn)證及序列化

    這篇文章主要介紹了Python基于Serializer實(shí)現(xiàn)字段驗(yàn)證及序列化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python實(shí)現(xiàn)曲線的肘部點(diǎn)檢測(cè)詳解

    Python實(shí)現(xiàn)曲線的肘部點(diǎn)檢測(cè)詳解

    肘部法則是經(jīng)常使用的法則。很多時(shí)候,可以憑人工經(jīng)驗(yàn)去找最優(yōu)拐點(diǎn),但有時(shí)需要自動(dòng)尋找拐點(diǎn)。本文為大家介紹了Python實(shí)現(xiàn)曲線的肘部點(diǎn)檢測(cè)的方法,希望對(duì)大家有所幫助
    2023-02-02
  • Python OpenCV實(shí)現(xiàn)圖片上輸出中文

    Python OpenCV實(shí)現(xiàn)圖片上輸出中文

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)圖片上輸出中文,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Django框架中方法的訪問和查找

    Django框架中方法的訪問和查找

    這篇文章主要介紹了Django框架中方法的訪問和查找,包括各種列表和字典的查找,是Python的Django框架使用的必備技巧,需要的朋友可以參考下
    2015-07-07

最新評(píng)論