Jon Clements wrote:
On Thursday, 19 April 2012 13:21:20 UTC+1, Roy Smith  wrote:
Let's say I have a function which takes a list of words. I might write the docstring for it something like:

def foo(words):
   "Foo-ify words (which must be a list)"

What if I want words to be the more general case of something you can iterate over? How do people talk about that in docstrings? Do you say "something which can be iterated over to yield words", "an iterable over words", or what?

I can think of lots of ways to describe the concept, but most of them seem rather verbose and awkward compared to "a list of words", "a dictionary whose keys are words", etc.

I would just write the function signature as (very similar to how itertools 
does it):

def func(iterable, ..):
  pass

IMHO that documents itself.

If you need explicit, look at the itertools documentation.

hth

Jon.

I think arguments should be named after their content/purpose instead of their type/nature. For documenation, argument should mention their type, 'iterable' is a valid choice.

in other words:

def func(words):
   """func-ify the given iterable of words"

would be better than

def func(iterable):
   """func-ify the given iterable of words"


JM

PS : my point stands valid for the itertools module, as within this module, an argument purpose could be to be iterable withtout any regard for the content.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to