34

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

4

4 に答える 4

44

Docstring Conventionsを読んでください。

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

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

だから私は次のようなコードを書くでしょう

def hello_function():
    """Return 'hello' string."""
    return 'hello'
于 2013-09-20T10:19:44.193 に答える
0

Pythonスクリプトを同時に遵守させることpydocstylepycodestyle挑戦です。しかし、非常に役立つことの 1 つは、docstring の最初の行を、関数またはクラスの要約として を含む 79 文字以内で記述することです。このようにして、途切れのない行の終わりにピリオドを.付けるという PEP 257 (に従って) の両方に準拠します。pydocstylePEP 8 の 79 文字の制限 ( に従ってpycodestyle)。

次に、空白行を 1 行残した後 (手動で を押すよりも、コディターの改行ショートカットを使用する方が優れていますenter)、好きなように書くことができます。インデントは、インデントの設定、タブの設定、使用するさまざまなコード エディターの行の設定により、システムが理解するものとはかなり異なります。秒。pycodestylepydocstyleTODOpycodestylepydocstyle TODO

于 2021-11-20T02:43:30.817 に答える