轻松掌握python设计模式之策略模式


Posted in Python onNovember 18, 2016

本文实例为大家分享了python策略模式代码,供大家参考,具体内容如下

"""
策略模式
"""
import types

class StrategyExample:
 def __init__(self, func=None):
  self.name = '策略例子0'
  if func is not None:
   """给实例绑定方法用的,不会影响到其他实例"""
   self.execute = types.MethodType(func, self)

 def execute(self):
  print(self.name)

def execute_replacement1(self):
 print(self.name + ' 从执行1')


def execute_replacement2(self):
 print(self.name + ' 从执行2')


if __name__ == '__main__':
 strat0 = StrategyExample()

 strat1 = StrategyExample(execute_replacement1)
 strat1.name = '策略例子1'

 strat2 = StrategyExample(execute_replacement2)
 strat2.name = '策略例子2'

 strat0.execute()
 strat1.execute()
 strat2.execute()

运行结果如图:

轻松掌握python设计模式之策略模式

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

Python 相关文章推荐
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
python读写csv文件的方法
Aug 13 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
python程序输出无内容的解决方式
Apr 09 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
python中super()函数的理解与基本使用
Aug 30 Python
轻松掌握python设计模式之访问者模式
Nov 18 #Python
Win10下Python环境搭建与配置教程
Nov 18 #Python
Python Paramiko模块的安装与使用详解
Nov 18 #Python
Python数据分析之真实IP请求Pandas详解
Nov 18 #Python
Python切换pip安装源的方法详解
Nov 18 #Python
Python max内置函数详细介绍
Nov 17 #Python
Python中的日期时间处理详解
Nov 17 #Python
You might like
十天学会php之第三天
2006/10/09 PHP
PHP个人网站架设连环讲(四)
2006/10/09 PHP
php文件下载处理方法分析
2015/04/22 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python操作SQLite简明教程
2014/07/10 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
国际商务系学生个人的自我评价
2013/11/26 职场文书
风险评估实施方案
2014/03/09 职场文书
土建施工员岗位职责
2014/07/16 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
营销计划书范文
2015/01/17 职场文书
小学毕业感言100字
2015/07/30 职场文书
Python机器学习之基础概述
2021/05/19 Python
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android