Python如何遍历函数列表



我有一堆函数可以执行xy和z,这些函数在发生异常后执行。所以我的问题是,我不想一个接一个地写函数,而是想创建一个函数列表,并编写一个函数来迭代列表中的那些函数。

如果你能给我举个例子,那将是非常有帮助的。

这是我的

def call_va_funcs(self, stop):
self.disableZüruckVA()
while True:

try:


correct = urllib.request.urlopen("http://192.168.167.12", timeout=10).getcode()
print(correct, "192.168.100.2 is reachable: FAIL")
if correct  == 200:
self.enableZüruckVA()
self.exitflag == True
break
except Exception:
print('Preflash')
if self.exitflag == True:
self.enableZüruckVA()
break
self.ping_all_va()
time.sleep(1)
if self.exitflag == True:
self.enableZüruckVA()    
break

self.run_rxtx()
time.sleep(1)
if self.exitflag == True:
self.enableZüruckVA()
break

self.call_netzteil()
time.sleep(1)
if self.exitflag == True:
self.enableZüruckVA()
break

正如你在这里看到的,我一遍又一遍地重复同样的过程,但有不同的功能。有人能帮我弄清楚如何创建一个列表,然后遍历这些函数吗。

谢谢

假设您有functionA()functionB()functionC()
您可以将函数的名称放入列表中,如下所示:

f_list = [functionA, functionB, functionC]

然后,您可以一个接一个地调用这些函数:

while True:
# other code here...
try:
#... other code
except:
# ...other code
for func in f_list:
func()
time.sleep(1)
if self.exitflag == True:
self.enableZüruckVA()    
break

您可以尝试类似的smth

my_methods = []
my_methods.append('ping_all_va')
my_methods.append('run_rxtx')
my_methods.append('next_func')
for cmd in my_methods:
method = getattr(self, cmd)
method()
time.sleep(1)
if self.exitflag == True:
self.enableZüruckVA()    
break

最新更新