91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

策勒县| 长汀县| 缙云县| 酒泉市| 陵川县| 建平县| 织金县| 博爱县| 阿拉善右旗| 台东市| 永修县| 岚皋县| 慈溪市| 张家界市| 富阳市| 万宁市| 武夷山市| 平江县| 县级市| 廉江市| 云安县| 江门市| 北流市| 民权县| 乐陵市| 肥西县| 闸北区| 三河市| 贵州省| 金寨县| 山阴县| 大邑县| 汶上县| 江城| 鹤山市| 抚州市| 桃园县| 富顺县| 河西区| 隆安县| 和田市|