<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bestfit_func(self, bestfit_x):
 """ Returns bestfit_y value args: bestfit_x: scalar, array_like x value return: scalar, array_like bestfit y value """

        bestfit_x = np.array(bestfit_x)
        if not self.done_bestfit:
            raise KeyError("Do do_bestfit first")
        bestfit_y = 0
        for idx, val in enumerate(self.fit_args):
            bestfit_y += val * (bestfit_x **
                                (self.args.get("degree", 1) - idx))
        return bestfit_y