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

Python設計模式之模板方法模式實例詳解

 更新時間:2019年01月17日 11:59:02   作者:Andy冉明  
這篇文章主要介紹了Python設計模式之模板方法模式,結合實例形式較為詳細的分析了模板方法模式的概念、原理及Python定義、使用模板方法模式相關操作技巧,需要的朋友可以參考下

本文實例講述了Python設計模式之模板方法模式。分享給大家供大家參考,具體如下:

模板方法模式(Template Method Pattern):定義一個操作中的算法骨架,將一些步驟延遲至子類中.模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

下面是一個模板方法模式的一個demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——模板方法模式
模板方法模式(Template Method Pattern):定義一個操作中的算法骨架,將一些步驟延遲至子類中.模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟
使用場景:當不變和可變的行為在方法的子類實現(xiàn)中混合在一起時,不變的行為就會在子類中重復出現(xiàn),用模板方法模式把這些不變的行為搬到單一的地方,幫助子類擺脫重復不變的行為糾纏
"""
class NewPaper(object):
  def question1(self):
    print "題目1"
    print self.answer1()
  def question2(self):
    print "題目2"
    print self.answer2()
  def answer1(self):
    return ''
  def answer2(self):
    return ''
class TestPaperA(NewPaper):
  def answer1(self):
    return '答案A1'
  def answer2(self):
    return '答案A2'
class TestPaperB(NewPaper):
  def answer1(self):
    return '答案B1'
  def answer2(self):
    return '答案B2'
if __name__ == '__main__':
  test1 = TestPaperA()
  test2 = TestPaperB()
  print "試卷A"
  test1.question1()
  test1.question2()
  print "試卷B"
  test2.question1()
  test2.question2()

運行結果:

試卷A
題目1
答案A1
題目2
答案A2
試卷B
題目1
答案B1
題目2
答案B2

上面類的設計如下圖:

NewPaper是抽象類,定義抽象模板并實現(xiàn)了抽象模板方法,TestPaper實現(xiàn)父類的一個或多個抽象方法

當不變和可變的行為在子類的方法中混合在一起時,不變的行為就會在子類中重復出現(xiàn),通過模板方法模式把這些行為搬到單一的地方,幫助子類擺脫重復的不變行為的糾纏

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

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

相關文章

  • python如何調用字典的key

    python如何調用字典的key

    在本篇文章里小編給大家分享的是關于python調用字典的key方法實例,有興趣點朋友們可以參考學習下。
    2020-05-05
  • Python for循環(huán)與getitem的關系詳解

    Python for循環(huán)與getitem的關系詳解

    這篇文章主要介紹了Python for循環(huán)與getitem的關系詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Pytorch損失函數(shù)torch.nn.NLLLoss()的使用

    Pytorch損失函數(shù)torch.nn.NLLLoss()的使用

    這篇文章主要介紹了Pytorch損失函數(shù)torch.nn.NLLLoss()的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python?json?jsonl?的用法詳解

    python?json?jsonl?的用法詳解

    這篇文章主要介紹了python?json?jsonl?的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • 使用Python實現(xiàn)火車票查詢系統(tǒng)(帶界面)

    使用Python實現(xiàn)火車票查詢系統(tǒng)(帶界面)

    周末、假期來了,七夕也快到了,又到一年中最一票難求的時候了!本文將用Python制作一個簡單的火車票查詢系統(tǒng),感興趣的可以了解一下
    2022-07-07
  • Python使用tkinter實現(xiàn)搖骰子小游戲功能的代碼

    Python使用tkinter實現(xiàn)搖骰子小游戲功能的代碼

    這篇文章主要介紹了Python使用tkinter實現(xiàn)的搖骰子小游戲功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • python字典鍵值對的添加和遍歷方法

    python字典鍵值對的添加和遍歷方法

    下面小編就為大家?guī)硪黄猵ython字典鍵值對的添加和遍歷方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Python3之簡單搭建自帶服務器的實例講解

    Python3之簡單搭建自帶服務器的實例講解

    今天小編就為大家分享一篇Python3之簡單搭建自帶服務器的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python入門教程(十四)Python的集合

    Python入門教程(十四)Python的集合

    這篇文章主要介紹了Python入門教程(十四)Python的集合,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • 如何實現(xiàn)更換Jupyter Notebook內核Python版本

    如何實現(xiàn)更換Jupyter Notebook內核Python版本

    這篇文章主要介紹了如何實現(xiàn)更換Jupyter Notebook內核Python版本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05

最新評論

新平| 北碚区| 南澳县| 长泰县| 商城县| 湖南省| 湄潭县| 安塞县| 邵东县| 扎囊县| 南溪县| 诏安县| 酒泉市| 富阳市| 中宁县| 富顺县| 安新县| 太仓市| 周口市| 凌云县| 利川市| 广汉市| 玉树县| 吉安县| 汤阴县| 伊通| 赣榆县| 台州市| 阿克苏市| 甘泉县| 横山县| 青海省| 南通市| 吉木萨尔县| 张北县| 米林县| 宁明县| 闽清县| 南平市| 彰化县| 仙桃市|