首页 > 解决方案 > 在运行时创建一个函数,该函数在 python 中具有特定数量的参数

问题描述

是否可以在运行时创建具有固定数量参数的函数?

我需要创建一个由两个函数组成的函数,以便获得 f_new(x,a,b,c,d,e) = f_1(x,a,b) + f_2(x,c,d,e)两个任意函数f_1f_2. 使用类似的方法

from inspect import signature
def combine(f_1,f_2):
    arg_len_1 = len(signature(f_1).parameters) - 1
    arg_len_2 = len(signature(f_2).parameters) - 1
    def combined(x,*args):
        return f_1(x,args[:arg_len_1]) + f_2(x,args[arg_len_1:arg_len_2])
    return combined

对我不起作用,因为您不能两次应用它,因为在此过程中参数的数量会丢失。

有没有什么方法可以在不使用的情况下在 python 中实现这一点,eval()或者这是唯一的选择?

标签: pythonfunctional-programming

解决方案


推荐阅读