這篇文章主要介紹“Python策略模式怎么用”,在日常操作中,相信很多人在Python策略模式怎么用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython策略模式怎么用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、徽縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為徽縣等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
首先是發(fā)生器基類(lèi):
class Generator: # 初始化函數(shù) # period:周期 def __init__(self, period): self.period= period # 計(jì)算輸入值折算到最后一個(gè)周期時(shí)的占比 def rate(self, t): return(t - int(t / self.period) * self.period)/ self.period # 計(jì)算輸出 def output(self, t): pass
發(fā)生器基類(lèi)Gererator定義了策略接口output,其功能是根據(jù)輸入的時(shí)間值計(jì)算對(duì)應(yīng)的輸出數(shù)據(jù)。由于信號(hào)發(fā)生器的周期性,因此在實(shí)際的處理中只要將時(shí)間值折算到一個(gè)周期之內(nèi)再計(jì)算結(jié)果即可,這個(gè)折算功能就是rate方法。接下來(lái)就是具象策略類(lèi)正弦發(fā)生器SinGerneator和方波發(fā)生器SquareGenerator,具體實(shí)現(xiàn)如下:
class SinGenerator(Generator): def __init__(self,period): Generator.__init__(self, period) # 計(jì)算輸出 def output(self, t): returnsin(2 * 3.1415926* self.rate(t)) class SquareGenerator(Generator): def __init__(self,period): Generator.__init__(self, period) # 計(jì)算輸出 def output(self, t): if self.rate(t) < 0.5: return-1 else:
兩個(gè)具象類(lèi)分別實(shí)現(xiàn)了output方法以輸出正弦數(shù)據(jù)和方波數(shù)據(jù)。為了體驗(yàn)發(fā)生器策略的功能,我們?cè)O(shè)計(jì)了如下的小程序。
def test_strategy(generator):
result = ''
# 正好輸出一個(gè)周期
for t in range(0, 16):
# 調(diào)用策略接口
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))
代碼使用完全相同的邏輯,使用了兩個(gè)信號(hào)發(fā)生器。以下是其程序執(zhí)行結(jié)果:
+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,
到此,關(guān)于“Python策略模式怎么用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!