重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“Python策略模式怎么用”,在日常操作中,相信很多人在Python策略模式怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python策略模式怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联专注于企业全网营销推广、网站重做改版、徽县网站定制设计、自适应品牌网站建设、H5响应式网站、商城网站定制开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为徽县等各大城市提供网站开发制作服务。
首先是发生器基类:
class Generator: # 初始化函数 # period:周期 def __init__(self, period): self.period= period # 计算输入值折算到最后一个周期时的占比 def rate(self, t): return(t - int(t / self.period) * self.period)/ self.period # 计算输出 def output(self, t): pass
发生器基类Gererator定义了策略接口output,其功能是根据输入的时间值计算对应的输出数据。由于信号发生器的周期性,因此在实际的处理中只要将时间值折算到一个周期之内再计算结果即可,这个折算功能就是rate方法。接下来就是具象策略类正弦发生器SinGerneator和方波发生器SquareGenerator,具体实现如下:
class SinGenerator(Generator): def __init__(self,period): Generator.__init__(self, period) # 计算输出 def output(self, t): returnsin(2 * 3.1415926* self.rate(t)) class SquareGenerator(Generator): def __init__(self,period): Generator.__init__(self, period) # 计算输出 def output(self, t): if self.rate(t) < 0.5: return-1 else:
两个具象类分别实现了output方法以输出正弦数据和方波数据。为了体验发生器策略的功能,我们设计了如下的小程序。
def test_strategy(generator):
result = ''
# 正好输出一个周期
for t in range(0, 16):
# 调用策略接口
value= generator.output(t)
# 格式化输出
result= result + '{:+.2f},'.format(round(value, 2))
print(result)
if __name__ == '__main__':
# 使用正弦策略,周期20
test_strategy(SinGenerator(16))
# 使用方波策略,周期20
test_strategy(SquareGenerator(16))
代码使用完全相同的逻辑,使用了两个信号发生器。以下是其程序执行结果:
+0.00,+0.38,+0.71,+0.92,+1.00,+0.92,+0.71,+0.38,+0.00,-0.38,-0.71,-0.92,-1.00,-0.92,-0.71,-0.38,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,+1.00,+1.00,+1.00,+1.00,+1.00,+1.00,+1.00,+1.00,
到此,关于“Python策略模式怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!