web-dev-qa-db-ja.com

スフィンクスナポレオンドキュメント関数は複数の引数を返すことができますか?

Googleのコードスタイルを使用して関数をドキュメント化しようとしています。次に、スフィンクスとナポレオン拡張機能を使用してドキュメントを作成します。この関数は、2つの引数を返すという点で珍しいものです。ナポレオンがこれを処理するとは思わない。もしそうなら、誰かがそれをどのように扱うか教えてもらえますか?

def foo(a):
'''one line summary

longer explanation

Args:
  a (int): parameter description

Returns:
  servers (list): list of servers to use
  msg (str): logging message string 
'''
pass

複数の引数を返すのは優れたコーディングスタイルではないというメッセージが表示されるかもしれませんが、これを実行できますか?生成されたhtmlは、これらの2行を1つの引数の説明の一部として扱います。サーバーとmsg行の間に改行を入れると役に立ちますが、それでも1つの引数が文書化されています。

23
MrCartoonology

Pythonは単一のオブジェクトのみを返します。あなたが電話する場合

serv,msg = foo(myinput)

次に、関数がこのコードで戻るときに生成されるexpression_listタプルを明示的に展開します。

return servers,msg

あなたのdocstringはこのようなものを読むべきです(ナポレオングーグルスタイルで)

"""
one line summary

longer explanation

Args:
    a (int): parameter description

Returns:
    (Tuple): Tuple containing:

        servers(list) servers to use
        msg (str): logging message string 
"""

または、ナポレオンNumPyスタイルの場合:

"""
one line summary

longer explanation

Parameters
----------
a : int
    parameter description

Returns
-------
servers : list
    servers to use
msg : str
    logging message string 
"""

python docs for return andおそらく expression_list を見てください

28
mor22

Googleスタイルは、複数の戻り値をサポートしていません。回避策として、次のものを使用できます。

Returns:
        2-element Tuple containing

        - **rates** (*array*): the unnormalized rates (just the sum of the
          exponential kernels). To obtain rates in Hz divide the
          array by `2*tau` (or other conventional `x*tau` duration).
        - **nph** (*array*): number of photons in -5*tau..5*tau window
          for each timestamp. Proportional to the rate computed
          with KDE and rectangular kernel.

これにより、返された各アイテムに複数行の説明がある場合でも、Nice出力が得られます。

16
user2304916