プログラムのパーツ間の改行のPython規約)とは何か知りたいのですが、たとえば、次のように考えてください。
import os
def func1():
def func2():
以下の間の理想的な改行分離は何ですか?
import
モジュールと関数?PEP8 を読みましたが、上記の2点を確認したいと思います。
PEP8の「空白行」セクション で確認すると、次のようになります。
トップレベルの関数とクラスの定義を2つの空白行で囲みます。
クラス内のメソッド定義は、単一の空白行で囲まれています。
関連する関数のグループを区切るために、余分な空白行が(控えめに)使用される場合があります。空白行は、関連する一連のワンライナー(たとえば、ダミーの実装のセット)の間で省略できます。
関数では空白行を控えめに使用して、論理セクションを示します。
imports について、PEP8は次のように述べています。
インポートは通常、別々の行にある必要があります
...
インポートは次の順序でグループ化する必要があります。
- 標準ライブラリのインポート
- 関連するサードパーティの輸入
- ローカルアプリケーション/ライブラリ固有のインポート
インポートの各グループの間に空白行を入れる必要があります。
したがって、例として、PEP8準拠のフォーマットは次のようになります。
import os
def func1():
def func2():
より包括的な説明を与えるために:
import re
import glob
import sys
import requests
import scrapy
from flask import Flask
from my_local_module import MyClass
def top_level_function1():
pass
def top_level_function2():
pass
class TestClass(object):
def class_method1():
pass
def class_method2():
pass
class TestClass2(object):
def class2_method1():
pass
def class2_method2():
pass
空白行トップレベルの関数とクラスの定義を2つの空白行で囲みます。
クラス内のメソッド定義は、単一の空白行で囲まれています。
関連する関数のグループを区切るために、余分な空白行が(控えめに)使用される場合があります。空白行は、関連する一連のワンライナー(たとえば、ダミーの実装のセット)の間で省略できます。
関数では空白行を控えめに使用して、論理セクションを示します。
Pythonは、コントロールL(つまり^ L)フォームフィード文字を空白として受け入れます。多くのツールはこれらの文字をページ区切り文字として扱うため、これらを使用してファイルの関連セクションのページを区切ることができます。一部のエディターやWebベースのコードビューアは、control-Lをフォームフィードとして認識せず、代わりに別のグリフを表示する場合があります。