2016-05-06 1 views
3

他の人々のPythonコードでは、関数のドキュメントストリングの前にいくつかのチェックを貼り付けています。このような何か: Pythonでdocstringの前にコードを置く理由は何ですか?

def func(args): 
    if x_version != 1.7: 
    return 
    """docstring is here""" 
    # function body code 
    # ... 

はあなた べきまたは に持っている何かを回避するためにドキュメンテーション文字列の前にいくつかのコードを入れて任意の例がありますか?このスタイルを導入しなければならないという特殊なケースはありますか?それとも常にスタイリングが悪いので、このようなものに固定する必要がありますか?

def func(args): 
    """docstring is here""" 
    if x_version != 1.7: 
    return 
    # function body code 
    # ... 

答えて

7

それは関数本体内最初の文であればPythonは唯一のドキュメンテーション文字列をピックアップします。それは文字列がちょうど完全に無視されることを意味する前にコードを置く:あなたはドキュメンテーション文字列が実際にどんな効果を持つようにしたい場合は

>>> def func(args): 
... if x_version != 1.7: 
...  return 
... """docstring is here""" 
... 
>>> func.__doc__ is None 
True 

あなたははこれを行うべきではありません。 Python reference documentationから

:関数本体で

文字列リテラルとして登場する最初の文は、関数の__doc__属性、したがって、関数のドキュメンテーション文字列に変換されます。

太字強調。

+0

これは本当です。私は 'inspect'モジュールを使ってdocstringのない関数があるかどうかを確認していましたが、移動したdocstringでその関数を見つけた方法です:)その前にPythonコードを置く必要があるときは特別なケースは考えられません。 docstring(IDEの他の人にはdocstringは利用できないと理解するなど)? –

+0

@AlexTereshenkov:不注意と "私はそれを知りませんでした"と特別なケースとして認定されるかもしれません。 – usr2564301

+0

@AlexTereshenkov:これを行う理由は決してありません**。それをバグと考えてください。 –

関連する問題