首先,从策略模式说起

在大多数的编程语言中,策略模式实现是这样的:

首先创建一个基础策略(通过接口或抽象类),然后创建若干子类继承这个基础策略(见wikipedia),再次,balabala……

然而,python中用一个类就可以实现策略模式了,正如下面例子中实现的这样,将函数注入这个类的实例即可:import typesclass StrategyExample:

def __init__(self, func=None):        self.name = 'Strategy Example 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 + ' from execute 1')def execute_replacement2(self):

print(self.name + ' from execute 2')if __name__ == '__main__':

strat0 = StrategyExample()

strat1 = StrategyExample(execute_replacement1)

strat1.name = 'Strategy Example 1'

strat2 = StrategyExample(execute_replacement2)

strat2.name = 'Strategy Example 2'

strat0.execute()

strat1.execute()

strat2.execute()### OUTPUT #### Strategy Example 0# Strategy Example 1 from execute 1# Strategy Example 2 from execute 2

这种方式,既体现了策略模式的精髓,也很好的与python结合,对此,Gevin表示:awesome!

然后,下面才是本文重点

如此巧妙的策略模式的实现,不是我研究出来的,而是我发现的:

本段代码其实来源于Github,有一个叫做『python-patterns』的repo,这里收集了所有设计模式的python版实现,我谓之pythonic design pattern,大家可以去看看,尤其推荐各位做后台的同学,即便不用python,也可以开拓思路,不妨说是Gevin介绍来的 :p

作者:Gevin

链接:https://www.jianshu.com/p/f277a3de97ae

python pattern_python-patterns:python风格的设计模式相关推荐

  1. Python编程风格和设计模式

    http://blog.csdn.net/pipisorry/article/details/26840461 the Zen of Python Python的禅学 >>> imp ...

  2. Python 中最简最好的设计模式

    大势所趋,Python 已然成风 C语言诞生于1972年,确随着 Unix 的诞生才深深植根于各大操作系统: C++诞生于1983年,确因微软的可视化桌面操作系统才得以广泛传播: Java 诞生于19 ...

  3. python对于图片的风格的处理--引用github上开源项目的

    2019独角兽企业重金招聘Python工程师标准>>> 关于python做过的比较好玩的事 这段时间学了python,对于python这种优雅简洁的语言深深吸引,在网上看到一个git ...

  4. PEP(Python Enhancement Proposals, python改进建议书)8--python代码风格指南

    文章目录 介绍 愚蠢的始终如一是小心灵中的妖精(Hobgoblin Of Little Minds) 代码布局 缩进 制表符还是空格? 最大行长 行应该在二元运算符之前还是之后换行? 空行 源文件编码 ...

  5. python源程序的书写风格_以下关于Python程序的书写风格,正确的描述是:???????????????????????????????????????...

    以下关于Python程序的书写风格,正确的描述是:??????????????????????????????????????? 答:程序尽可能简洁明了而不要复杂隐晦 一幅320×240的真彩色图像, ...

  6. pythonic风格_【Python进阶】Pythonic风格整理

    作者: eavea 发表日期: 2020年04月14日 分类: 后端技术 标签: Python 阅读次数: 5,329 评论数: 0 条 [Python进阶]Pythonic风格整理 所谓Python ...

  7. python笔记之编程风格大比拼

    python笔记之编程风格大比拼 虽然我的python age并不高,但我仍然愿意将我遇到的或者我写的有趣的python程序和大家一块分享,下面是我找到的一篇关于各类python程序员的编程风格的比较 ...

  8. python编程 语言-Python现在还是最火的编程语言吗?

    相信对于每个人而言,知道编程和学习编程这件事,出发点是不同的.我在北京接触编程的时间是2013年,那个时候还在一个二线城市上大学,还没有这么多各种融资,各种互联网创业的氛围,大家想的更多的是一些线下的 ...

  9. 【干货】TensorFlow 2.0官方风格与设计模式指南(附示例代码)

    本文转自专知 [导读]TensorFlow 1.0并不友好的静态图开发体验使得众多开发者望而却步,而TensorFlow 2.0解决了这个问题.不仅仅是默认开启动态图模式,还引入了大量提升编程体验的新 ...

  10. python 入门基础-Python 如何入门?

    相信对于每个人而言,知道编程和学习编程这件事,出发点是不同的.我在北京接触编程的时间是2013年,那个时候还在一个二线城市上大学,还没有这么多各种融资,各种互联网创业的氛围,大家想的更多的是一些线下的 ...

最新文章

  1. 转 如何在IOS设备中去掉屏幕上的status bar
  2. wxWidgets:wxTextWrapper类用法
  3. 【算法设计与分析】03 算法及其时间复杂度
  4. 汇编指令的学习4——ldm/stm指令、栈的处理
  5. 纳尼?我的Gradle build编译只要1s
  6. 一般纳米材料是指尺度为_水溶性单分散纳米材料的开发意义
  7. java的int和Integer的区别
  8. pandas快速把txt转为excel
  9. (转载)基于STM32的多节锂电池管理系统的设计
  10. Mysql-04-DQL-基础查询-条件查询-模糊查询-UNION和UNION ALL-排序-数量限制-分组查询-子查询
  11. 【Excel】Excel无序数据模糊查询
  12. 唐 库利超级计算机,第七卷 乖离性 百万亚瑟王_第二百五十二章 绝望中的希望...
  13. 前端页面适应不同分辨率
  14. 2019年第八届java B组蓝桥杯省赛真题
  15. zigbee 问题一:协调器究竟如何选择信道?
  16. 行驶证识别sdk的功能
  17. 【材料】 塑料件 ABS 和 PC 的区别
  18. nsl0重构算法 matlab,基于SL0压缩感知信号重建的改进算法
  19. 虚假新闻检测的论文阅读笔记——sigir2021:User Preference-aware Fake News Detection
  20. airodump-ng的使用及显示

热门文章

  1. JavaScript获取鼠标左键选中的内容
  2. The Elements of C# Style -Naming
  3. CCNP第四天(2) 配置、校验OSPF特殊区域类型-完全Stub区域
  4. python三大神器===》迭代器
  5. Spark在不同集群中的运行架构
  6. CIO黄嘉粤谈互联网金融与CIO发展
  7. Array.apply 方法的使用
  8. C#中使用DateTimePicker控件显示修改日期时间
  9. JavaScript 小记 之 闭包(Closures)
  10. 菜鸟学exchange之一:exchange邮件系统的简单安装和部署