Pep 8には次のルールがあります
空行
トップレベルの関数とクラスの定義は、2 つの空白行で区切ります。
クラス内のメソッド定義は、1 行の空白行で区切られます。
関連する関数のグループを区切るために、余分な空白行を (控えめに) 使用することができます。関連する一連のワンライナー (たとえば、一連のダミー実装) の間の空白行は省略できます。
論理セクションを示すために、関数内で空白行を控えめに使用します。
Python は、コントロール L (つまり ^L) フォーム フィード文字を空白として受け入れます。多くのツールはこれらの文字をページ区切りとして扱うため、ファイルの関連セクションのページを区切るために使用できます。一部のエディターおよび Web ベースのコード ビューアーは、control-L をフォーム フィードとして認識せず、代わりに別のグリフを表示する場合があることに注意してください。
ただし、クラス定義内に完全に空白の行を含めることはできません
私の頭からの例:
class bunny:
def spam(self):
pass
def eggs(self):
pass
#a second example
class bunny2:
def __init__(self):
self._eggs = None
def eggs(self):
doc = "Spam and Eggs"
def fget(self, value):
return self._eggs
def fset(self, value):
self._eggs = value
def fdel(self):
del self._eggs
return locals()
eggs = property(**eggs())
スパムと卵の間の行は空行にする必要がありますが、予期しないインデントの解析エラーが発生します。そのスペースに入るべき別のキャラクターはいますか?私の仮定は、読みやすいので、「空白」行にスペース/タブを残すことです。
2 番目の例では、ネストされた定義は、解析が正しく機能するために前の行のインデントを維持する必要があります。これを処理する正しいPEP 8の方法は何ですか? 空白行、空白行空白行、行なし?