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

2024-10-04 01:30:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个由多个方法组成的类,我想使用方法的返回值作为同一类中其他方法的参数。有可能吗

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'

我得到了上述给定的错误


Tags: csvselfnumberdfreaddefrunsanalysis
2条回答

如果不想从类外显式调用函数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作为参数传递

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

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

相关问题 更多 >