Il mainstream è, come già indicato in altre risposte, probabilmente con lo Sphinx way in modo che sia possibile utilizzare Sphinx per generare quei documenti di fantasia in seguito.
Detto questo, di tanto in tanto utilizzo lo stile di commento in linea.
def complex( # Form a complex number
real=0.0, # the real part (default 0.0)
imag=0.0 # the imaginary part (default 0.0)
): # Returns a complex number.
"""Form a complex number.
I may still use the mainstream docstring notation,
if I foresee a need to use some other tools
to generate an HTML online doc later
"""
if imag == 0.0 and real == 0.0:
return complex_zero
other_code()
Un altro esempio qui, con alcuni dettagli molto piccoli in linea documentato:
def foo( # Note that how I use the parenthesis rather than backslash "\"
# to natually break the function definition into multiple lines.
a_very_long_parameter_name,
# The "inline" text does not really have to be at same line,
# when your parameter name is very long.
# Besides, you can use this way to have multiple lines doc too.
# The one extra level indentation here natually matches the
# original Python indentation style.
#
# This parameter represents blah blah
# blah blah
# blah blah
param_b, # Some description about parameter B.
# Some more description about parameter B.
# As you probably noticed, the vertical alignment of pound sign
# is less a concern IMHO, as long as your docs are intuitively
# readable.
last_param, # As a side note, you can use an optional comma for
# your last parameter, as you can do in multi-line list
# or dict declaration.
): # So this ending parenthesis occupying its own line provides a
# perfect chance to use inline doc to document the return value,
# despite of its unhappy face appearance. :)
pass
I benefici (come @ mark-Horvath già sottolineato in un altro commento) sono:
- Most importantemente, i parametri e il loro documento rimangono sempre uniti, il che porta i seguenti vantaggi:
- Meno digitazioni (non è necessario ripetere il nome della variabile)
- Manutenzione semplificata in caso di modifica/rimozione della variabile. Non ci sarà mai alcun paragrafo del parametro dei parametri orfani dopo aver rinominato qualche parametro.
- e più facile da trovare il commento mancante.
Ora, alcuni potrebbero pensare che questo stile sia "brutto". Ma direi che "brutto" è una parola soggettiva. Un modo più neutrale è quello di dire che questo stile non è mainstream quindi potrebbe sembrare meno familiare, quindi meno confortevole. Ancora una volta, "comodo" è anche una parola soggettiva. Ma il punto è che tutti i benefici sopra descritti sono oggettivi. Non è possibile raggiungerli nel modo standard.
Speriamo che un giorno, in futuro, ci sarà uno strumento generatore di documenti che può anche consumare tale stile in linea. Ciò guiderà l'adozione.
PS: questa risposta deriva dalla mia preferenza di utilizzare i commenti in linea ogni volta che ritengo opportuno. Io uso anche lo same inline style to document a dictionary.
Hai letto PEP 257? http://www.python.org/dev/peps/pep-0257/ – NPE
Ci sono diversi "standard" là fuori ma su un approccio pratico e soprattutto se ti piace qualcosa di formale, ti consiglierei [sfinge] (http://pythonhosted.org/an_example_pypi_project/sphinx.html). La sua integrazione in [Pycharm] (https://www.jetbrains.com/pycharm/) rende generose docstring ben strutturate piuttosto indolore. IMHO – jojo