У меня есть 3 класса, каждый из которых считает свой тип кривой : Пирсон, Сплайны и Безье. Для каждого из них нужно посчитать адекватность. В данный момент каждый класс кривых содержит следующую копи-пасту:
def calculate_adequacy_person(self): chi, phi_2 = chisquare(self.p_nabl, f_exp=self.p_teor) self.adequacy_person = f'\chi^2_кр = {phi_2} \n\chi^2_эмп = {chi} ' def calculate_adequacy_kolmagorov(self): stats = ks_2samp(self.p_teor, self.p_nabl) self.adequacy_kolmagorov = f'K_\\alpha = {stats[0]} \n\\alpha = {stats[1]} ' def calculate_adequacy_kendal(self): kendal = spstat.stats.kendalltau(self.p_teor, self.p_nabl) self.adequacy_kendal = f'\\tau = {kendal[0]:4} \n p = {kendal[1]*2:4} ' def calculate_teor_data(self): self.p_teor = self.x__.copy() self.p_nabl = self.probability_rand_value.copy() for i, item in enumerate(self.x__): self.p_teor[i] = self.function(item)
Собственно вопрос, как красиво решить проблему повторяющегося кода ?
думаю создать модуль с функциями, но мне не нравится тот факт что придется много данных передавать в качестве входных данных (большой массив входных точек)