On Thu, 17 Apr 2008 15:11:40 -0700, james wrote: >> I am not necessarily looking to make the code shorter or more >> functional or anything in particular. However if you spot something to >> improve then I am happy to learn. > > To give an example of what I mean I have already altered the code: > > def output_random_lesson_of_type(self, type=None): > """Output a lesson of a specific type. > If no type is passed in then output any type.""" > output_lessons = self.lesson_data["lessons"] if type: > filtered_lessons = filter(lambda x: x["type"] == type, > self.lesson_data["lessons"]) > if filtered_lessons: > output_lessons = filtered_lessons > else: > print "Unable to find lessons of type %s." % type > return self.output_random(output_lessons) > > Changes: > - Respected a column width of 80 > - Created the output_lessons variable, assigned it to a default. > This remove an else statement and reduced the call to > self.output_random to a single instance in the return statement > > Cheers, > James
I would write it like this: def output_random_lesson_of_type(self, type=None): """\ Output a lesson of a specific type. If no type is passed in then output any type. """ if type: return self.output_random([x for x in self.lesson_data["lessons"] if x["type"] == type]) return self.output_random(self.lesson_data["lessons"]) -- Ivan -- http://mail.python.org/mailman/listinfo/python-list