現在、私はPythonパッケージのドキュメントをSphinxとautodocプラグインを使って書いています。 関数の戻り値については、例えば次のようにすることができます。 :returns: int: count
を書くと、countという名前のint型の戻り値があることがsphinxに伝えられます。Python docstringで異なる戻り値の型を指定する方法
私は今、私に私のデータベース内の項目の前任者を取得する機能を持って:あなたが見ることができるように、それはに応じて元のアイテムを取得し、いずれかのクラスAlphaRelease
のインスタンスを返し、BetaRelease
またはVRelease
def get_previous_release(release_id):
""" Holt Vorgängeritem eines Items mit der ID release_id
:param release_id: ID des items für das Release
:type release_id: int
"""
if not isinstance(release_id, int):
raise ValueError('get_previous_release expects an Integer value for the parameter release_id')
try:
release = my_queries.core.get_by_id(release_id)
except IndexError:
raise LookupError('The item with id {} could no be found'.format(release_id))
if 'Alpha-Release' in release.name:
release = AlphaRelease(release.key, release.name, release.state)
elif 'Beta-Release' in release.name:
release = BetaRelease(release.key, release.name, release.state)
elif '-Release' in release.name:
release = VRelease(release.key, release.name, release.state)
else:
raise TypeError('The item with the id {} does not contain \'-Release\' in the Summary ' + \
'and is therefore not considered a Release')
previous_release = release.get_predecessor()
if not previous_release:
raise LookupError('Could not find a predecessor for item with id {}'.format(release_id))
return previous_release
をアイテムのフィールドname
の内容。
docstringにさまざまな型の戻り値を定義するベストプラクティスは何ですか? Sphinx documentationから
私はrtype指令について知っています。しかし、私の質問は、さまざまな戻り値の型をうまく文書化する方法です。私は 'rtype:AlphaRelease、BetaRelease、VRelease'を実行するのですか?または、それぞれの戻り型に対して別々の3つのrtypeディレクティブを定義しますか? – Igle
コメントと新しい 'typing'モジュールとそのボキャブラリへのポインタを追加しました。それは進化し続ける動物のままですが、それは新しい標準です。そこには、弱い、古いスフィンクス世代を補うための形式主義を探すだろう。 –