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

yipeiwu_com6年前Python基础

本文实例为大家分享了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安装路径以及安装包路径小技巧

特别是linux系统,装了多个python,有时候找不到python的绝对路径,有时候装了个django,又找不到django安装到哪里了。。当然查看的方法有很多种,这里列出几种,供没有...

Python字符串、列表、元组、字典、集合的补充实例详解

Python字符串、列表、元组、字典、集合的补充实例详解

本文实例讲述了Python字符串、列表、元组、字典、集合。分享给大家供大家参考,具体如下: 附加: python的很多编译器提供了代码补全功能,并且在填入参数时提供提示功能 字符串...

Django的models模型的具体使用

model的常用字段 V=models.CharField(max_length=None[, **options])    #varchar V=models.EmailFiel...

python中PS 图像调整算法原理之亮度调整

亮度调整 非线性亮度调整: 对于R,G,B三个通道,每个通道增加相同的增量。 线性亮度调整: 利用HSL颜色空间,通过只对其L(亮度)部分调整,可达到图像亮度的线性调整。但是,RGB和H...

跟老齐学Python之折腾一下目录

python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多,有兴趣的看官可以参考官方文档:https:/...