最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

一個原型模式的簡單demo:

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

運行結(jié)果:

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

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

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

更多關(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)典教程

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

相關(guān)文章

  • python圖像處理之反色實現(xiàn)方法

    python圖像處理之反色實現(xiàn)方法

    這篇文章主要介紹了python圖像處理之反色實現(xiàn)方法,涉及Python結(jié)合OpenCV與numpy操作圖片的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 基于python實現(xiàn)圖片轉(zhuǎn)字符畫代碼實例

    基于python實現(xiàn)圖片轉(zhuǎn)字符畫代碼實例

    這篇文章主要介紹了基于python實現(xiàn)圖片轉(zhuǎn)字符畫代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • PyCharm Terminal終端命令行Shell設(shè)置方式

    PyCharm Terminal終端命令行Shell設(shè)置方式

    這篇文章主要介紹了PyCharm Terminal終端命令行Shell設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • tensorflow求導(dǎo)和梯度計算實例

    tensorflow求導(dǎo)和梯度計算實例

    今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計算實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python any()函數(shù)的使用方法

    Python any()函數(shù)的使用方法

    這篇文章主要介紹了Python any()函數(shù)的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python代碼調(diào)試Debug的實用技巧分享

    Python代碼調(diào)試Debug的實用技巧分享

    我們?nèi)粘懘a過程中,難免會寫出各類錯誤,這些錯誤可能是語法錯誤、邏輯錯誤或運行時錯誤,所以本文為大家分享了一些Python調(diào)試Debug的技巧,感興趣的可以了解下
    2024-11-11
  • Python訪問PostgreSQL數(shù)據(jù)庫詳細(xì)操作

    Python訪問PostgreSQL數(shù)據(jù)庫詳細(xì)操作

    postgresql是常用的關(guān)系型數(shù)據(jù)庫,并且postgresql目前還保持著全部開源的狀態(tài),這篇文章主要給大家介紹了關(guān)于Python訪問PostgreSQL數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 對Python實現(xiàn)累加函數(shù)的方法詳解

    對Python實現(xiàn)累加函數(shù)的方法詳解

    今天小編就為大家分享一篇對Python實現(xiàn)累加函數(shù)的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 從django的中間件直接返回請求的方法

    從django的中間件直接返回請求的方法

    今天小編就為大家分享一篇從django的中間件直接返回請求的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • OpenCV停車場車位實時檢測項目實踐

    OpenCV停車場車位實時檢測項目實踐

    本文主要介紹了OpenCV停車場車位實時檢測項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評論

北安市| 吉安县| 建瓯市| 栾城县| 崇阳县| 洛阳市| 剑阁县| 屯门区| 太湖县| 无为县| 独山县| 湘阴县| 筠连县| 色达县| 余江县| 平顺县| 渭源县| 台中县| 临沧市| 德惠市| 嘉黎县| 江达县| 县级市| 泾川县| 湖北省| 南宫市| 南溪县| 科技| 丹寨县| 南郑县| 沛县| 全州县| 民丰县| 阿坝县| 策勒县| 巴东县| 丁青县| 黔南| 永顺县| 九台市| 城口县|