class Operation():
def __init__(self,NumberA=0,NumberB=0):
self.NumberA = NumberA
self.NumberB = NumberB
def GetResult(self):
pass class AddOp(Operation):
def GetResult(self):
return self.NumberB + self.NumberA
class MinusOp(Operation):
def GetResult(self):
return self.NumberA - self.NumberB
class MultiOp(Operation):
def GetResult(self):
return self.NumberA * self.NumberB
class pideOp(Operation):
def GetResult(self):
try:
return 1.0*self.NumberA / self.NumberB
except ZeropisionError:
raise class OperationFatory():
def ChooseOperation(self,op):
if op == '+':
return AddOp()
if op == '-':
return MinusOp()
if op == '*':
return MultiOp()
if op == '/':
return pideOp() if __name__ == '__main__':
ch = ''
while not ch=='q':
NumberA = eval(raw_input('Please input number1: '))
op = str(raw_input('Please input the operation: '))
NumberB = eval(raw_input('Please input number2: '))
OPFactory = OperationFatory()
OPType = OPFactory.ChooseOperation(op)
OPType.NumberA = NumberA
OPType.NumberB = NumberB
print 'The result is:',OPType.GetResult()
print '\n#-- input q to exit any key to continue'
try:
ch = str(raw_input())
except:
ch = '' # -*-coding:UTF-8-*-
from abc import ABCMeta,abstractmethod
class Operation():
def __init__(self,NumberA=0,NumberB=0):
self.NumberA = NumberA
self.NumberB = NumberB
def GetResult(self):
pass
class AddOp(Operation):
def GetResult(self):
return self.NumberB + self.NumberA
class MinusOp(Operation):
def GetResult(self):
return self.NumberA - self.NumberB
class MultiOp(Operation):
def GetResult(self):
return self.NumberA * self.NumberB
class pideOp(Operation):
def GetResult(self):
try:
return 1.0*self.NumberA / self.NumberB
except ZeropisionError:
raise
class OperationFatory():
def ChooseOperation(self,op):
if op == '+':
return AddOp()
if op == '-':
return MinusOp()
if op == '*':
return MultiOp()
if op == '/':
return pideOp()
if __name__ == '__main__':
ch = ''
while not ch=='q':
NumberA = eval(raw_input('Please input number1: '))
op = str(raw_input('Please input the operation: '))
NumberB = eval(raw_input('Please input number2: '))
OPFactory = OperationFatory()
OPType = OPFactory.ChooseOperation(op)
OPType.NumberA = NumberA
OPType.NumberB = NumberB
print 'The result is:',OPType.GetResult()
print '\n#-- input q to exit any key to continue'
try:
ch = str(raw_input())
except:
ch = '' 以上就是python版简单工厂模式的介绍的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于python版简单工厂模式的介绍的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did81705