python3设计模式之简单工厂模式


Posted in Python onOctober 17, 2017

在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 DivideOp(Operator):
 """docstring for DivideOp"""

 def GetResult(self):
 try:
  return float(float(self.NumberA) / float(self.NumberB) * 1.0)
 except ZeroDivisionError as e:
  print("DivideOp 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 DivideOp()


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 = ''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 条件判断的缩写方法
Sep 06 Python
Python常用算法学习基础教程
Apr 13 Python
python numpy格式化打印的实例
May 14 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
django使用xadmin的全局配置详解
Nov 15 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python关于集合的知识案例详解
May 30 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 #Python
python版简单工厂模式
Oct 16 #Python
Python实现扩展内置类型的方法分析
Oct 16 #Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 #Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 #Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 #Python
python中文件变化监控示例(watchdog)
Oct 16 #Python
You might like
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Promise扫盲贴
2019/06/24 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
Python docx库用法示例分析
2019/02/16 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
研究生求职推荐信范文
2013/11/30 职场文书
吨的认识教学反思
2014/04/27 职场文书
会计人员演讲稿
2014/09/11 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
建党伟业电影观后感
2015/06/01 职场文书
学子宴致辞大全
2015/07/27 职场文书