On Sat, 19 Jul 2014 10:38:47 -0700, C.D. Reimer wrote: > Greetings, > > I typically write a Python 2.7 string function in my library like this: > > def getCompletedTime(start, end): > return "Time completed:", str(end - start) > > And called it like this: > > print getCompletedTime(start, end) > > Since every Python script I write is executed from the command line, I > rewrote the string function like this: > > def getCompletedTime(start, end): > print "Time completed:", str(end - start) > > And call it like this: > > getCompletedTime(start, end)
In general, I much prefer the first version. The general principle I follow is, as much as possible, to separate calculation from display. Advantages include: - You can easily re-use the getCompletedTime function in situations where you don't want to display the time, or pass the result on to another function for further processing before display. - It makes automated testing of the functions much easier. - It makes it easier to vary the type of display. Today you want to print to the standard output. Tomorrow you might want to output to a file, or display in a GUI window. - It makes it easier to understand the large-scale structure of your code. Seeing "print getCompletedTime(a, b)" makes it pretty clear that you are printing the result of the calculation, whereas "getCompletedTime(a, b)" does not. -- Steven -- https://mail.python.org/mailman/listinfo/python-list