別の関数(function_B
)のパラメータを反復処理で最適化する関数(function_A
)を書きたいと思います。一定の基準に基づいて結果を最適化するだろう関数変数を別の関数のパラメータとして参照する方法は?
def function_B(a=10, b=12, c=14, d= 18):
value = (...)
return value
今私は、パラメータa
、b
、c
の組み合わせを見つけたい、d
:そのパラメータが最適化される機能。
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
問題がある、私はa
を指定する方法がわからない。だから私は、次の関数を書く - - たとえば、ユーザーが最適化するために、どのパラメータを指定することができ、この場合には、我々はパラメータa
を最適化することを選択しますfunction_A
。私が使用してみました:
function_A(variable = a, ...)
function_A(variable = 'a', ...)
どちらも作品... 'a'
を指定する方法を私は反復処理するパラメータのですか?
def A(a=5, b=4):
return a, b
def B(var):
x = {var:'numberyouwant'}
return A(**x)
だからあなたの場合には、文字列として変数を渡し、dictonaryにこれを渡し、最後にキーワードとして変数を使用すると、あなたが最適化したいparemeterであなたの機能を更新します。ここでは
ありがとうございますが、私はまだ理解していません。単純な例として次のコードを試してみました。エラーメッセージが表示されました。私がどこに間違っているか私に見せてくれますか? – user7269791
def A(a = 1、b = 2): 戻り値a + b'と def B(var = 'a'、min = 10): temp_dict = {var:min} ans = A 'var' 'b') 'をテストし、エラーが発生しましたmsg _TypeError: 'str'と 'int'オブジェクトを連結できません – user7269791