python简单工厂模式_简单工厂模式-python语言实现
abstractoperation.py?????????????????????????? //抽象操作類
代碼如下:
import string
class Operation(object):
def __init__(self):
pass
def init(self, num1, num2):
self.numA = string.atoi(num1)
self.numB = string.atoi(num2)
def Getresult():
pass
operation.py????????????????????????????????? //實現(xiàn)具體操作的類
代碼如下:
from abstractoperation import *
class OperationAdd(Operation):
def Getresult(self):
return self.numA + self.numB
class OperationSub(Operation):
def Getresult(self):
return self.numA - self.numB
class OperationMul(Operation):
def Getresult(self):
return self.numA * self.numB
class OperationDiv(Operation):
def Getresult(self):
if self.numB == 0:
return 'error'
return self.numA / self.numB
faction.py?????????????????????????????? //工廠類
代碼如下:
from operation import *
class Factory(object):
obj = None
def main(self, str):
if str == '+':
obj = OperationAdd()
elif str == '-':
obj = OperationSub()
elif str == '*':
obj = OperationMul()
elif str == '/':
obj = OperationDiv()
else:
pass
return obj
client.py??????????????????????????????????????????????????? //用來測試的客戶端程序
代碼如下:
#!/usr/bin/env python
from factory import *
num1 = raw_input('please input the first num:')
optType = raw_input('please input the operation type:')
num2 = raw_input('please input the second num:')
factory = Factory()
opt = factory.main(optType)
opt.init(num1, num2)
result = opt.Getresult()
print(result)
通過執(zhí)行客戶端程序就可以看到程序運行的結果,這里使用的python版本是2.7.5,對于python3來說,可能有點不同。。。。
總結
以上是生活随笔為你收集整理的python简单工厂模式_简单工厂模式-python语言实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文搞懂:词法作用域、动态作用域、回调函
- 下一篇: 看完Java的动态代理技术——Pytho