如何将函数变量引用为另一个函数的参数?

2024-04-23 13:41:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个函数(function_A),通过迭代优化另一个函数(function_B)的参数。要优化其参数的函数是:

 def function_B(a=10, b=12, c=14, d= 18):
    value = (...)
    return value

现在我想找到参数abcd的组合,它们将根据特定的标准优化结果。因此,我编写了以下函数-例如-用户可以指定要优化的参数,在本例中,我们选择优化参数a

def function_A(variable = a, min = 10, max = 20):

    value = np.zeros((max - min + 1)) # initialize an empty vector to store results
    count = 0

    for i in np.linspace(1, 20, 20, endpoint=True):
        ans = function_B(variable = i)
        value[count] = ans
        count = count + 1

    return value

问题是,我不知道如何在function_A中指定a。我试着用:

function_A(variable = a, ...)

function_A(variable = 'a', ...)

但两者都不起作用…如何指定'a'是我要遍历的参数?你知道吗


Tags: 函数用户参数标准returnvaluedefcount
1条回答
网友
1楼 · 发布于 2024-04-23 13:41:07

下面是一个非常简单的例子:

def A(a=5, b=4):
    return a, b

def B(var):
    x = {var:'numberyouwant'}
    return A(**x)

因此,在您的例子中,将变量作为字符串传递,并将其传递到一个dictory中,最后使用关键字变量用您想要优化的参数更新您的函数。你知道吗

def function_A(variable = 'a', min = 10, max = 20):

    value = np.zeros((max - min + 1)) # initialize an empty vector to store results
    count = 0

    for i in np.linspace(1, 20, 20, endpoint=True):
        temp_dict = {variable: i}
        ans = function_B(**temp_dict)
        value[count] = ans
        count = count + 1

return value

相关问题 更多 >