On 19/07/14 18:38, 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)

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
        else:
            return string

I'm curious as to what the proper Python style would be for this.
You might look into PEP8 "Style Guide for Python Code" it will give you recommendation how to write a code. among other gives most sensible answer: "Consistency within a project is more important. Consistency within one module or function is most important...... When in doubt, use your best judgment. Look at other examples and decide what looks best."

http://legacy.python.org/dev/peps/pep-0008/#function-names

for me if you will be reusing this function I would just use:
def getCompletedTime(start, end): return "Time completed:", str(end - start)

if you need to print just add print, if you want result from this function somewhere else you got it. adding additional arguments necessary adds complexity. do you really need it. Keep it simple stupid expression can be applied everywhere.
cheers
Wojciech
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to