【发布时间】:2020-10-01 06:10:48
【问题描述】:
我正在尝试创建一个由多个方法组成的类,并且我想将方法的返回值用作同一类中其他方法的参数。有可能这样做吗?
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'
我得到了上面给出的错误。
【问题讨论】:
-
是的,有可能。请显示您遇到的错误。
-
那我该如何使用呢?我是初学者,可能做得不对。 -------------------------------------------------- ------------------------- TypeError Traceback(最近一次调用最后一次)
in 1 d = Result_analysis (0.95) ----> 2 d.extract_arrays() 类型错误:extract_arrays() 缺少 1 个必需的位置参数:'df' -
你在调用
d.extract_arrays()时没有给它一个参数,但是因为你已经将它定义为def extract_arrays(self, df)(d被隐式传递为self),它需要一个额外的参数,它你没有提供。这就是错误消息告诉您的内容。 -
请显示您创建
d的代码并调用方法(edit 问题,请勿将代码作为评论发布)。 -
删除第 17 行,以及
d.read_file(1)行。编辑:哦等等,你已经改变了更多......基本上回到你在这里发布的原始代码,但不是d.extract_arrays()使用d.extract_arrays(d.read_file(1))。
标签: python methods parameters