我以递归方式调用函数// Change pbuff to type int in the declartion, and then...
while(true)
{
pbuff = fgetc(fp);
if(EOF == pbuff)
break;
fputc(pbuff, fpp);
}
,并要求每个调用的代码中obtainingparams
,residuals
和tau_1
的值存储在某处,这样我就可以比较与每个函数调用相关的值。但是,我不太清楚如何去做这件事。
tau_2
谢谢
答案 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)
从设计的角度来看,如果你真的想跟踪每次调用使用的参数,我不确定使用递归是否最好。