您好,欢迎访问一九零五行业门户网

python3之简单工厂模式的介绍

这篇文章主要为大家详细介绍了python3设计模式之简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在python3环境下,调试实现了《大话设计模式》中简单工厂模式,通过定义单独的工厂类,完成对具体的产品的实例化,参考链接
具体实现见代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- # date : 2017-10-15 21:46:28 # author : john # version : v1.001 # func : class operator(object): """docstring for operator""" def __init__(self, numbera=0, numberb=0): super(operator, self).__init__() self.numbera = numbera self.numberb = numberb def getresult(self): pass class addop(operator): """docstring for addop""" def getresult(self): return int(float(self.numbera) + float(self.numberb)) class minusop(operator): """docstring for minusop""" def getresult(self): return int(float(self.numbera) - float(self.numberb)) class multiop(operator): """docstring for multiop""" def getresult(self): return int(float(self.numbera) * float(self.numberb)) class pideop(operator): """docstring for pideop""" def getresult(self): try: return float(float(self.numbera) / float(self.numberb) * 1.0) except zeropisionerror as e: print("pideop error, {0}".format(e)) class operatorfactory(object): """docstring for operatorfactory""" def chooseoperator(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 = input('please input numbera: ') op = input('please input operator: ') numberb = input('please input numberb: ') factory = operatorfactory() optype = factory.chooseoperator(op) optype.numbera = numbera optype.numberb = numberb print('the result is: {0}'.format(optype.getresult())) print('\n#-- input q to exit any key to continue') try: ch = str(input()) except exception as e: print('get input error: {0}'.format(e)) print('use default value to ch') ch = ''
以上就是python3之简单工厂模式的介绍的详细内容。
其它类似信息

推荐信息