2017-09-27 3 views
-1

반복을 통해 다른 함수 (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와 keyworded 변수 업데이 트를 함수를 사용하여 :

답변

1

여기 아주 간단한 예이다.

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 
+0

고마워요,하지만 아직도 이해가 안되요. 다음 코드를 간단한 예제로 시도하고 오류 메시지가 나타납니다. 내가 잘못 나온 곳을 보여줄 수 있니? – user7269791

+0

def B (var = 'a', min = 10) : temp_dict = {var : min} def B () var ''b ')'오류 메시지가 발생했습니다 _TypeError :'str '과'int '객체를 연결할 수 없습니다 _ – user7269791