轻松掌握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之再深点,更懂list
Sep 20 Python
Python代码调试的几种方法总结
Apr 15 Python
Python fileinput模块使用实例
May 28 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
python增加矩阵维度的实例讲解
Apr 04 Python
Python中常用的内置方法
Jan 28 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Python日志器使用方法及原理解析
Sep 27 Python
Python函数式编程中itertools模块详解
Sep 15 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
学习YUI.Ext基础第一天
2007/03/10 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
Python字符遍历的艺术
2008/09/06 Python
Python中的Numpy入门教程
2014/04/26 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Windows下python3.7安装教程
2018/07/31 Python
python实现朴素贝叶斯算法
2018/11/19 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
标准自荐信范文
2014/01/29 职场文书
授权委托书范本
2014/04/03 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
教师党员整改措施
2014/10/24 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
各种货币符号快捷输入
2022/02/17 杂记
详解Python中的for循环
2022/04/30 Python