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

Ian Kelly ian.g.kelly at gmail.com
Sat Jul 19 14:56:55 EDT 2014


On Sat, Jul 19, 2014 at 12:24 PM, Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
> Besides that I wouldn't write the function on one line, the first.  Once you
> return your data you can do what you want with it.  The second you can only
> write by default to stdout.  The third is really horrible in my book, YMMV.

I agree. Optional flags that alter the behavior of functions are
considered unpythonic; usually it's better to let the alternative
behavior have its own function, particularly if they can share
implementation.

With that in mind, I would suggest to the OP that you might want to
have *two* functions:

def format_completed_time(start, end):
    return "Time completed: " + str(end - start)

def print_completed_time(start, end):
    print(get_completed_time(start, end))

Also notice that I changed the function naming style from mixedCase to
lower_case_with_underscores. This is the style recommended for Python
by PEP 8, which you should read if you haven't already.
http://legacy.python.org/dev/peps/pep-0008/#naming-conventions

I also changed the verb from "get" to "format".  "get" suggests to me
that it will retrieve the completed time as a processable value, not
as a part of a formatted string.



More information about the Python-list mailing list