On Fri, Oct 16, 2009 at 7:21 AM, Dave Angel <da...@ieee.org> wrote: > My attempt at readability (untested): > > def colorPrint(color_items): #1 > """Call this function to print one or more strings, each with > a color number specified, to the console. The argument > is a list of items, where each item is > a tuple consisting of a string and an integer color number, > with the color number determining what color the string > will be displayed in. This function will not work with > redirection, as the color logic only works with the Win32 console.""" > #2 > for text, color in color_items: #3 > textcolor(color) #4 > print text #5
I would make the signature def colorPrint(*color_items): This was the caller doesn't need to enclose the arguments in a list, it would be called like colorPrint(('text', 0), ('more text', 1)) Another way to do this would be to make an object to hold the color value and a print function that special cases it. A sketch: class Style(object): def __init__(self, style): self.style = style def set_style(self): # Set the text color according to self.style def colorPrint(*items): for item in items: if isinstance(item, Style): item.set_style() else: print item, Now you can say colorPrint(Style(0), 'some text', Style(1), 'some text in a different color') Kent _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor