I have a goal function that returns the fitness of a given solution. I need to wrap that function with a class or a function to keep track of the best solution I encounter. Which of the following would best serve my purpose and be the most pythonic?
class Goal: def __init__(self, goal): self.goal = goal self.best = None self.best_score = None def __call__(self, solution): score = self.goal(solution) if self.best is None or score > self.best_score: self.best_score = score self.best = solution return score def save_best_goal(goal): def new_goal(solution): score = goal(solution) if new_goal.best is None or score > new_goal.best_score: new_goal.best = solution new_goal.best_score = score return score new_goal.best = new_goal.best_score = None return new_goal -Ben -- http://mail.python.org/mailman/listinfo/python-list