[討論] 循環執行N個函式的寫法
大家好,假設我的畫面上有一個按鈕,想讓使用者在點擊時依序且循環執行不同的
函數,例如我有funcA()、funcB()及funcC():
第1次點擊執行funcA()
第2次點擊執行funcB()
第3次點擊執行funcC()
第4次點擊執行funcA()
第5次點擊執行funcB()
第6次點擊執行funcC()
第7次點擊執行funcA()
...
目前我能想到的實現方案有兩種
第一種產生比較多的物件,且每次都要重新進行累加及模數運算:
func_list = [funcA, funcB, funcC]
index = 0
def onClick():
func_list[index%len(func_list)]()
index = index + 1
第二種產生的物件及運算應該比較少,但相對code比較長:
generator = cycleFunc()
def cycleFunc():
while True:
yield funcA
yield funcB
yield funcC
def onClick():
next(generator)()
請問除此之外,還有更簡潔的寫法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.100.124
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1527864022.A.6E1.html
推
06/01 23:00,
7年前
, 1F
06/01 23:00, 1F
Cycle好像是一直重複跑不會停下來耶
推
06/01 23:37,
7年前
, 2F
06/01 23:37, 2F
這就是方法一的做法呀
→
06/01 23:37,
7年前
, 3F
06/01 23:37, 3F
※ 編輯: icetofux (111.250.100.124), 06/02/2018 00:52:21
※ 編輯: icetofux (111.250.100.124), 06/02/2018 00:56:11
推
06/02 03:08,
7年前
, 4F
06/02 03:08, 4F
了解,我記成itertools.cycle()的功能了,1樓對不起。
→
06/02 03:09,
7年前
, 5F
06/02 03:09, 5F
※ 編輯: icetofux (111.250.100.124), 06/02/2018 07:44:58
Python 近期熱門文章
PTT數位生活區 即時熱門文章