1

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の方法は何ですか? 空白行、空白行空白行、行なし?

4

1 に答える 1

2

REPL で作業している場合、完全に空白の行を持つことはできません。しかし、とにかく、REPL に入力されたコードが PEP 8 に厳密に従う理由はありません。ただし、ファイル内では、PEP 8 に従うことをお勧めします。

于 2012-11-07T04:00:51.747 に答える