存储递归函数调用的值

时间:2015-07-25 19:07:24

标签: python recursion

我以递归方式调用函数// Change pbuff to type int in the declartion, and then... while(true) { pbuff = fgetc(fp); if(EOF == pbuff) break; fputc(pbuff, fpp); } ,并要求每个调用的代码中obtainingparamsresidualstau_1的值存储在某处,这样我就可以比较与每个函数调用相关的值。但是,我不太清楚如何去做这件事。

tau_2

谢谢

1 个答案:

答案 0 :(得分:1)

通过使用全局列表,您可以实现这一点。第一个调用的参数将在values [0]中,第二个调用在值[1]中,等等。

values = []

def obtainingparams(self, df, tau_1, tau_2, residuals):
    global values

    print('Calculate the yields Matrix and matrix_of_params in this part')

    params = np.linalg.lstsq(matrix_of_params,yields) 
    residuals = np.sqrt(((yields - matrix_of_params.dot(params))**2).sum())  
    tau_1 = tau_1 + 0.2 
    tau_2 = tau_2 + 0.2

    values.append((tau1, tau2, residuals))

    #Checkin how many times the function has been called via a decorator not included in this code
    while self.obtainingparams(self, df, tau_1, tau_2, residuals).called < 5:
        self.obtainingparams(self, df, tau_1, tau_2, residuals)

从设计的角度来看,如果你真的想跟踪每次调用使用的参数,我不确定使用递归是否最好。