我有一个使用以下函数的 Python 代码:
def func1(arguments a, b, c):
def func2(arguments d, e, f):
def func3(arguments g, h, i):
上述每个功能都在产品上配置了一个 CLI 命令。
此外,对于上述每个函数,都有删除 CLI 命令的 de-init 函数。
def de_init_func1(arguments x, y, z):
def de_init_func2(arguments l, m, n):
def de_init_func3(arguments q, r, s):
假设我有一个脚本,它使用函数 func1、func2 和 func3 配置大量 CLI 命令,并且在脚本完成之前,脚本应该删除它配置的所有 CLI 命令。
为此,每次调用 func1/2/3 时,我需要将等效的 de_init_func CALL 添加到列表中,因此在脚本结束时,我可以迭代此列表,并调用 de-init方法一一。
如何将“func1(arguments) 调用”添加到列表而不在将其添加到列表时调用它。
如果我只是将 func1(arguments) 调用添加为字符串“func1(arguments)”,一旦我将迭代列表,我将无法调用函数调用,因为解释器将引用列表项作为字符串而不是函数调用...
请您参考如下方法:
在最简单的层面上,您可以简单地使用元组来引用函数调用。例如,对 func1(a, b, c) 的调用将由元组 (func1, a, b, c) 引用。然后您可以安全地将这些元组放入列表中。
要稍后执行由这样一个元组表示的函数(比如 t),只需使用:
t[0](*t[1:])
即:使用剩余类型中的参数调用 t[0] 中的函数。
