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

Python設(shè)計模式之簡單工廠模式實例詳解

 更新時間:2019年01月22日 08:41:06   作者:Andy冉明  
這篇文章主要介紹了Python設(shè)計模式之簡單工廠模式,結(jié)合實例形式分析了簡單工廠模式的概念、原理及相關(guān)使用技巧,需要的朋友可以參考下

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

簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類.

下面使用簡單工廠模式實現(xiàn)一個簡單的四則運算

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
'''
大話設(shè)計模式
用任意一種面向?qū)ο笳Z言實現(xiàn)一個計算器控制臺程序。要求輸入兩個數(shù)和運算符號,得到結(jié)果
設(shè)計模式——簡單工廠模式
簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。
'''
class Operation(object):
  '''
  四則運算的父類,接收用戶輸入的數(shù)值
  '''
  def __init__(self, number1=0, number2=0):
    self.num1 = number1
    self.num2 = number2
  def GetResult(self):
    pass
  pass
#加法運算類
class OperationAdd(Operation):
  def GetResult(self):
    return self.num1 + self.num2
#減法運算類
class OperationSub(Operation):
  def GetResult(self):
    return self.num1 - self.num2
#乘法運算類
class OperationMul(Operation):
  def GetResult(self):
    return self.num1 * self.num2
#除法運算類
class OperationDiv(Operation):
  def GetResult(self):
    if self.num2 == 0:
      return '除數(shù)不能為0 '
    return 1.0*self.num1 / self.num2
#其他操作符類
class OperationUndef(Operation):
  def GetResult(self):
    return '操作符錯誤'
#簡單工廠類
class OperationFactory(object):
  def choose_oper(self,ch):
    if ch == '+':
      return OperationAdd()
    elif ch == '-':
      return OperationSub()
    elif ch == '*':
      return OperationMul()
    elif ch == '/':
      return OperationDiv()
    else:
      return OperationUndef()
if __name__ == "__main__":
  ch = ''
  while not ch == 'q':
    num1 = input('請輸入第一個數(shù)值: ')
    oper = str(raw_input('請輸入一個四則運算符: '))
    num2 = input('請輸入第二個數(shù)值: ')
    # Operation(num1,num2)
    OF = OperationFactory()
    oper_obj = OF.choose_oper(oper)
    oper_obj.num1 = num1
    oper_obj.num2 = num2
    print '運算結(jié)果為: ',oper_obj.GetResult()

運行結(jié)果:

請輸入第一個數(shù)值:  51
請輸入一個四則運算符:  -
請輸入第二個數(shù)值:  15
運算結(jié)果為:  36

這幾個類的結(jié)構(gòu)圖如下:

專門定義一個Operation類作為父類,加減乘除運算類繼承Operation類,OperationFactory類用來決定什么時候創(chuàng)建對應(yīng)的類

更多關(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)文章

  • LyScript獲取上一條與下一條匯編指令的方法詳解

    LyScript獲取上一條與下一條匯編指令的方法詳解

    LyScript 插件默認(rèn)并沒有提供上一條與下一條匯編指令的獲取功能,當(dāng)然你可以使用LyScriptTools工具包直接調(diào)用內(nèi)置命令得到,本文就為大家詳細(xì)講講如何實現(xiàn)
    2022-07-07
  • Python中使用PIPE操作Linux管道

    Python中使用PIPE操作Linux管道

    這篇文章主要介紹了Python中使用PIPE操作Linux管道,本文先是講解了一些管道的知識,然后給出示例代碼,需要的朋友可以參考下
    2015-02-02
  • python打包生成的exe文件運行時提示缺少模塊的解決方法

    python打包生成的exe文件運行時提示缺少模塊的解決方法

    今天小編就為大家分享一篇python打包生成的exe文件運行時提示缺少模塊的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python中matplotlib如何改變畫圖的字體

    Python中matplotlib如何改變畫圖的字體

    這篇文章主要介紹了Python中matplotlib如何改變畫圖的字體,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例

    Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例

    這篇文章主要為大家詳細(xì)介紹了Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • python散點圖實例之隨機(jī)漫步

    python散點圖實例之隨機(jī)漫步

    這篇文章主要為大家詳細(xì)介紹了python散點圖實例之隨機(jī)漫步,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python實現(xiàn)基于Excel數(shù)據(jù)繪制棋盤圖

    Python實現(xiàn)基于Excel數(shù)據(jù)繪制棋盤圖

    這篇文章主要為大家介紹了如何根據(jù)可視化的需要,利用Python將Excel中的數(shù)據(jù)用棋盤圖的樣式來展示,文中的示例代碼簡潔易懂,需要的可以參考一下
    2023-07-07
  • 在python下實現(xiàn)word2vec詞向量訓(xùn)練與加載實例

    在python下實現(xiàn)word2vec詞向量訓(xùn)練與加載實例

    這篇文章主要介紹了在python下實現(xiàn)word2vec詞向量訓(xùn)練與加載實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python接單的過程記錄分享

    Python接單的過程記錄分享

    這篇文章主要介紹了Python接單的過程記錄分享,需要的朋友可以參考下
    2021-04-04
  • 如何利用pyecharts畫好看的餅狀圖

    如何利用pyecharts畫好看的餅狀圖

    這篇文章主要給大家介紹了關(guān)于如何利用pyecharts畫好看的餅狀圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論