2017-09-26 8 views
0

返される前に空行を使用しているPEP参照を見つけることができないので、よくあることを知りたいと思います。Python関数のreturn文の前の空白行

例A1:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 
    return c 

例A2:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 

    return c 

例B1:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 
    return c 

例B2:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 

    return c 

例C1:

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 
    return a 

例C2:ものは、これらのユースケース(A、B、C)における一般的な慣行である

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 

    return a 

? return文の前にif-elseブロックまたはループのブロックが関わっているときに何か変化しますか?

+3

共通の練習はありません。私はreturn文の前に空白行を置くことを好みますが、他者はそうしたくないかもしれません。あなたが取り組んでいるプロジェクトのコンベンションに従うか、それが新しいプロジェクトの場合はあなたのことに固執してください。 – Maroun

+1

[PEP8](https://www.python.org/dev/peps/pep-0008/#blank-lines)から: "_論理区画を示すために余分な機能の空白行を使用してください._" Maroun氏は、個人的な好みやプロジェクトの慣習に従います。私にとっては、ケースごとの決定です。あなたのような小さな関数では、私は通常、return文の前に空白行を残しません。 –

+0

ドキュメントストリング後の空白行については、[PEP 257](https://www.python.org/dev/peps/pep-0257/)の例を参照してください。空白行はありません。 –

答えて

2

returnと空白行については、一般的なプラクティスはありません(少なくとも私はスタイルPEPではNoneを見たことがあります)。

しかし、空白行に関する1およびドキュメンテーション文字列(PEP 257を参照)があります:

ドキュメンテーション文字列の前または後のいずれかに空白行はありませんが。

しかし、また:

クラスを文書化し、すべてのドキュメンテーション文字列(1行または複数行)後に空白行を挿入します - 一般クラスのメソッドが互いに分離され、話します空白行で最初のメソッドからオフセットする必要があります。

(重点鉱山)

私はよくreturn前ループ、また時には空白行の後に空白行を見てきましたが、それは関数/ループの長さに依存します。 1つのスタイル(既存の慣習がない場合)を決めてそれに固執することがしばしば重要です。

スタイルガイドは、一貫性についてです:PEP8として

はそれを置きます。このスタイルガイドとの一貫性が重要です。プロジェクト内の一貫性はより重要です。 1つのモジュールまたは機能内の一貫性が最も重要です。

使用空白行で:

は、しかし、それはPEP8は(私はそれが論理的なセクションに「復帰」が、メーリングリストへだとは思わない)控えめに空白行を使用すると、論理的なセクションを分離することを推奨していることが重要です機能、は控えめに論理区域を示す。

(重点鉱山)