我注意到我越来越怀疑哪种编程工具在以下情况下最实用。 需要创建一个巨大的函数,它会获取可选数量的LISTS列表并对每个函数执行各种操作使用这样的输入似乎不切实际(有些情况甚至不可能):
def procedure1(array):...
def procedure2(array):...
...
def procedure_n(array):...
def common_procedure(array):...
def HUGE_function(*lists):
#every list is of the form [(procedure1,...,procedure_n),x_1,x_2,x_3,...,x_m]
common procedure([y[1:] for y in lists])
for n in lists:
for m in n[0]:
m(n[1:]) #we call a function applied to m[1:]
首先,正如我所提到的,在*列表的每个参数中混合数字和过程似乎不是一种正式的编程风格。另外,使用数组作为每个列表的第一个参数并不是最佳选择。另一方面,如果我们想将procedure1,procedure2,...,procedure_n作为默认参数呢?然后,列表中n的每个n [0](第一个参数)需要重复使用 - 这也不是最好的方法。 当程序数量很大时,我建议将n [0]解释为* n [0](打包参数列表),但我从未见过Python允许在* args中二维地使用* args。 好吧,复杂......有什么帮助吗?