如何将函数调用添加到列表?

qwe*_*rty 1 python function list python-2.7

我有一个使用以下函数的Python代码:

def func1(arguments a, b, c):

def func2(arguments d, e, f):

def func3(arguments g, h, i):
Run Code Online (Sandbox Code Playgroud)

上述每个函数都在产品上配置CLI命令.

另外,对于上述每个功能,都有de-init功能,它删除CLI命令.

def de_init_func1(arguments x, y, z):

def de_init_func2(arguments l, m, n):

def de_init_func3(arguments q, r, s):
Run Code Online (Sandbox Code Playgroud)

假设我有一个使用函数func1,func2和func3配置大量CLI命令的脚本,并且在脚本完成之前,脚本应该删除它配置的所有CLI命令.

为了做到这一点,每次调用FUNC1/2/3的时间,我需要相当于de_init_func呼叫添加到列表中,所以由脚本结束,我可以遍历这个列表,并通过调用去初始化方法之一一.

如何将"func1(arguments)call"添加到列表而不将其添加到列表中时调用它.

如果我将刚才添加的FUNC1(参数)调用作为一个字符串"FUNC1(参数)",有一次我会遍历列表,我不会像能够调用的函数调用,因为解释器将参考列表项字符串和不是函数调用...

Ser*_*sta 5

在最简单的级别,您可以简单地使用元组来引用函数调用.例如,func1(a, b, c)元组将引用一个调用(func1, a, b, c).然后,您可以安全地将这些元组放在列表中.

要稍后执行由这样的元组表示的函数(比如说t),只需使用:

t[0](*t[1:])
Run Code Online (Sandbox Code Playgroud)

即:用tple的剩余部分中的参数调用t [0]中的函数.