web-dev-qa-db-ja.com

Python PEP:関数定義後の空白行?

この詳細へのPEP参照が見つかりません。関数定義の後に空白行が必要ですか?

私はこれを行う必要があります:

def hello_function():
    return 'hello'

または私はこれを行う必要があります:

def hello_function():

    return 'hello'

Docstringを使用する場合も、同じ質問が当てはまります。

この:

def hello_function():
    """
    Important function
    """
    return 'hello'

またはこれ

def hello_function():
    """
    Important function
    """

    return 'hello'

[〜#〜]編集[〜#〜]

FoxMaSkがコメントしたように、これはPEPが空白行で言っていることですが、この詳細については何も述べていません。

空白行

トップレベルの関数とクラスの定義を2行の空白行で区切ります。

クラス内のメソッド定義は、1行の空白行で区切られます。

関連する機能のグループを区切るために、余分な空白行を(控えめに)使用することができます。関連するワンライナーの束(ダミー実装のセットなど)の間では、空白行を省略できます。

関数では、論理セクションを示すために、控えめに空白行を使用してください。

Pythonは、control-L(つまり、^ L)フォームフィード文字を空白として受け入れます。多くのツールはこれらの文字をページ区切り文字として扱うため、ファイルの関連セクションのページを区切るために使用できます。一部のエディターおよびWebベースのコードビューアーは、control-Lをフォームフィードとして認識せず、代わりに別のグリフを表示する場合があることに注意してください。

20
bgusach

読む Docstringの慣習

関数が本当に明白であっても、1行のdocstringを書かなければならないと書かれています。そしてそれは言う:

Docstringの前後に空白行はありません。

だから私は次のようなものをコーディングします

def hello_function():
    """Return 'hello' string."""
    return 'hello'
18
moliware

@moliwareが指摘しているように、 Docstring Conventions 状態、 One-line Docstrings

Docstringの前後に空白行はありません。

ただし、( Multi-line Docstrings の下):

all docstrings(one-line or multi-line)that thatdocument a class- 、クラスのメソッドは1つの空白行で互いに分離されており、docstringは最初のメソッドから空白行でオフセットする必要があります。

このすべての私の解釈:空白行はどのdocstringの前にも置くべきではなく、クラスの場合にのみdocstringの後に置くべきです。

13
Ryan de Kleer

プロジェクトは、さまざまなdocstring規則を使用します。

たとえば、pandasdocstring guide では、明示的に、独自の行に三重引用符を挿入する必要があります。

Docstringは、3つの二重引用符で定義する必要があります。 docstringの前後に空白行を残さないでください。テキストは、冒頭の引用符の後の次の行から始まります。終了引用符には独自の行があります(つまり、最後の文の終わりにありません)。

0
timgeb