kj a écrit :
(snip)

I think that sometimes even simple functions require a lot of
documentation.  For example, I want to document a function that
takes a dictionary as argument, and this dictionary is expected to
have 5 keys.  (When the number of mandatory arguments gets above
4, I find that it's too difficult to remember their order, so I
resort to using a dictionary as the single argument.)

Python supports keyword (named) arguments, so you don't have to remembed the order, ie:


def func(arg1, arg2, arg3, arg4):
   # code here


func(arg2=42, arg4="toto", arg3="truc", arg1="foo")


Also, with good enough naming (perhaps one of the most difficult part of programming FWIW), you don't necessarily need an exhaustive documentation of each and every detail.


(snip)

Then again, I suppose that Python's relative formal rigidity is
considered by many to be a strength.  Which means that, to be
comfortable with Python, one has to learn to like this (relatively)
rigid structure...

Or to learn how to hook into the system. If you want to put the doc before or after the function's body, it is not a big problem:


# doc after the function's body:

def func(args):
   # code here

func.__doc__ = """
doc here
...
"""



# doc before the function's body:

def document(doc):
  def _document(func):
    func.__doc__ = doc
    return func
  return _document


@document(""" doc here
and here and here
etc...
""")
def func():
  # code here


I wouldn't personnaly use any of the above styles, but as far as I'm concerned, I don't write exhaustive docstrings. Good naming (somehow one of the hardest part in programming IMHO) and simplicity (small simple functions doing one thing each) already provide some part of the documentation IMHO, and code always provides the most exhaustive documentation you'll ever find !-)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to