What's the proper style for a library string function?

C.D. Reimer chris at cdreimer.com
Sat Jul 19 19:38:47 CEST 2014


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)

The first version is what I'm familiar with having reluctantly learned 
Java at community college, which couldn't afford a Microsoft site 
license for Visual C++ and taught every class in Java. (The Linux 
instructor rebelled against this policy by teaching basic C/C++ and 
shell scripting in his classes.) I recently read an article that Python 
is replacing Java as a teaching language.

The second version is more straight forward but seems less readable 
(i.e., "print getCompletedTime(start, end)" vs. "getCompletedTime(start, 
end)") from the calling script.

Alternatively, I thought about rewriting the string function to accept 
an extra parameter to do either and default to the print statement.

     def getCompletedTime(start, end, type = 'p'):
         string = "Time completed: " + str(end - start)
         if type == 'p':
             print string
             return string

I'm curious as to what the proper Python style would be for this.

Thank you,

Chris Reimer

More information about the Python-list mailing list