使用一个方法的返回值作为同一类中另一个方法的参数



我正在尝试创建一个由多个方法组成的类,我想使用方法的返回值作为同一类中其他方法的参数。可以这样做吗?

class Result_analysis():
def __init__(self, confidence_interval):
self.confidence_interval = confidence_interval
def read_file(self, file_number):
dict_ = {1: 'Ten_Runs_avg-throughput_scalar.csv',
2: 'Thirty_Runs_avg-throughput_scalar.csv',
3: 'Hundred_Runs_avg-throughput_scalar.csv',
4: 'Thousand_Runs_avg-throughput_scalar.csv'}
cols = ['run', 'ber', 'timelimit', 'repetition', 'Module', 'Avg_Throughput']
data = pd.read_csv(dict_[file_number], delimiter=',', skiprows=[0], names=cols)
df = pd.DataFrame(data)
return df
def extract_arrays(self,df):
df = Result_analysis().read_file(file_number)
avgTP_10s_arr = []
avgTP_100s_arr = []
avgTP_1000s_arr = []
for i in range(len(data)):
if (df['timelimit'][i] == 10):
avgTP_10s_arr.append(df['Avg_Throughput'][i])
elif (df['timelimit'][i] == 100):
avgTP_100s_arr.append(df['Avg_Throughput'][i])
elif (df['timelimit'][i] == 1000):
avgTP_1000s_arr.append(df['Avg_Throughput'][i])
return avgTP_10s_arr, avgTP_100s_arr, avgTP_1000s_arr
d =  Result_analysis(0.95)
d.read_file(1)
d.exextract_arrays(d.read_file(1))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-92-485309654e5c> in <module>
1 d =  Result_analysis(0.95)
2 d.read_file(1)
----> 3 d.extract_arrays(d.read_file(1))
<ipython-input-91-06bc29de002c> in extract_arrays(self, file_number)
15 
16     def extract_arrays(self,file_number):
---> 17         df = Result_analysis().read_file(file_number)
18         avgTP_10s_arr = []
19         avgTP_100s_arr = []
TypeError: __init__() missing 1 required positional argument: 'confidence_interval'

我得到上面给定的错误。

您没有包含所有代码,您应该使用回溯更新问题,但您的意思是:

n = ...  # I don't know what n is.
d = Result_analysis(0.95)
print(d.extract_arrays(d.read_file(n))

如果您不想从外部类显式调用函数read_file。 然后,您可以将程序转换为:

class Result_analysis():
def __init__(self, confidence_interval):
self.confidence_interval = confidence_interval
def read_file(self, file_number):
dict_ = {1: 'Ten_Runs_avg-throughput_scalar.csv',
2: 'Thirty_Runs_avg-throughput_scalar.csv',
3: 'Hundred_Runs_avg-throughput_scalar.csv',
4: 'Thousand_Runs_avg-throughput_scalar.csv'}
cols = ['run', 'ber', 'timelimit', 'repetition', 'Module', 'Avg_Throughput']
data = pd.read_csv(dict_[file_number], delimiter=',', skiprows=[0], names=cols)
df = pd.DataFrame(data)
return df
def extract_arrays(self,file_number):
df = Result_analysis().read_file(file_number)
avgTP_10s_arr = []
avgTP_100s_arr = []
avgTP_1000s_arr = []
for i in range(len(data)):
if (df['timelimit'][i] == 10):
avgTP_10s_arr.append(df['Avg_Throughput'][i])
elif (df['timelimit'][i] == 100):
avgTP_100s_arr.append(df['Avg_Throughput'][i])
elif (df['timelimit'][i] == 1000):
avgTP_1000s_arr.append(df['Avg_Throughput'][i])
return avgTP_10s_arr, avgTP_100s_arr, avgTP_1000s_arr

调用函数extract_arrays,并将file_number作为参数传递

最新更新