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输出指定月份日历的方法
Apr 23 Python
python常见数制转换实例分析
May 09 Python
深入源码解析Python中的对象与类型
Dec 11 Python
python交互式图形编程实例(三)
Nov 17 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
Flask之请求钩子的实现
Dec 23 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
基于Tensorflow高阶读写教程
Feb 10 Python
详解解决jupyter不能使用pytorch的问题
Feb 18 Python
python爬取新闻门户网站的示例
Apr 25 Python
python图片灰度化处理的几种方法
Jun 23 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 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
一个用于网络的工具函数库
2006/10/09 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
提高网站信任度的技巧
2008/10/17 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
pybind11在Windows下的使用教程
2019/07/04 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
详解python logging日志传输
2020/07/01 Python
Python排序函数的使用方法详解
2020/12/11 Python
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
若干个Java基础面试题
2015/05/19 面试题
2014年会演讲稿范文
2014/01/06 职场文书
担保书范文
2015/01/20 职场文书
python实现进度条的多种实现
2021/04/29 Python
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
Python实现视频中添加音频工具详解
2021/12/06 Python