亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python設計模式之簡單工廠模式實例詳解

發布時間:2020-09-28 02:48:28 來源:腳本之家 閱讀:139 作者:Andy冉明 欄目:開發技術

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

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

下面使用簡單工廠模式實現一個簡單的四則運算

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
'''
大話設計模式
用任意一種面向對象語言實現一個計算器控制臺程序。要求輸入兩個數和運算符號,得到結果
設計模式——簡單工廠模式
簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。
'''
class Operation(object):
  '''
  四則運算的父類,接收用戶輸入的數值
  '''
  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 '除數不能為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('請輸入第一個數值: ')
    oper = str(raw_input('請輸入一個四則運算符: '))
    num2 = input('請輸入第二個數值: ')
    # Operation(num1,num2)
    OF = OperationFactory()
    oper_obj = OF.choose_oper(oper)
    oper_obj.num1 = num1
    oper_obj.num2 = num2
    print '運算結果為: ',oper_obj.GetResult()

運行結果:

 請輸入第一個數值:  51
請輸入一個四則運算符:  -
請輸入第二個數值:  15
運算結果為:  36

這幾個類的結構圖如下:

Python設計模式之簡單工廠模式實例詳解

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宿州市| 翼城县| 海淀区| 南陵县| 同江市| 疏附县| 宜昌市| 苗栗市| 河池市| 贡觉县| 托里县| 长兴县| 平顶山市| 弥渡县| 元氏县| 竹溪县| 韶山市| 高陵县| 志丹县| 乐山市| 清涧县| 射洪县| 化州市| 上犹县| 襄樊市| 朝阳市| 彰化市| 洪雅县| 咸宁市| 务川| 柳州市| 桦川县| 三原县| 庆元县| 昌江| 瓦房店市| 察隅县| 潜山县| 绵阳市| 车险| 图木舒克市|