关于这个主题有很多有趣的帖子,但我似乎要么不理解他们的答案,要么目标不同。这就是我正在尝试做的事情。我有两个(或更多)函数想要组合成一个新函数。以下片段显示了我的开始内容以及我想要的结束内容。
def a(x):
0.2 * x[1] - 0.4 * x[0]
def b(x):
0.4 * x[0] - 0.2 * x[1]
def ab(x):
return [0.2 * x[1] - 0.4 * x[0], 0.4 * x[0] - 0.2 * x[1]]
Run Code Online (Sandbox Code Playgroud)
问题是,我想ab在运行时动态创建。我有一个包含所有函数的列表ml,因此我可以在新函数中执行以下操作
def abl(x):
ml = [a, b]
rl = []
i = 0
for f in ml:
rl.append(f(x[i]))
i = i + 1
Run Code Online (Sandbox Code Playgroud)
然后打电话abl。该代码组合了各个函数并产生预期的输出。然而,每次调用都abl rl必须重新构建,这似乎很浪费。
是否有另一种方法可以组合a和b来创建新函数ab?