大家好,假设我的画面上有一个按钮,想让使用者在点击时依序且循环执行不同的
函数,例如我有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)()
请问除此之外,还有更简洁的写法吗?