3

私はさまざまなPythonコーディングスタイルガイド、SOに関するいくつかの回答などを読んでいますが、それほど重要ではない質問については言及されていませんが、これを行うための好ましい方法があるかどうかを知りたいです:

私が辞書を持っている場合、どのスタイルを使用するのが良いでしょう:

dict_name = {'test': 'somevalue',
             'test2': 'other'}

また

dict_name = {
    'longer_key': 'somevalue',
    'longer_key2': 'other'
}

また

dict_name = {
             'test': 'somevalue',
             'test2': 'other'
}

また

dict_name = {
             'test': 'somevalue',
             'test2': 'other'
            }

または、他の何か?

メソッドを呼び出す場合にも:

function_name(longer_arg1, longer_arg2, longer_arg3, 
    longer_arg4)

また

function_name(longer_arg1, longer_arg2, longer_arg3, 
              longer_arg4)

また

function_name(
    longer_arg1, 
    longer_arg2, 
    longer_arg3, 
    longer_arg4
)

また

function_name(
              longer_arg1, 
              longer_arg2, 
              longer_arg3, 
              longer_arg4
)

または、他の何か?

より長いロギングラインが使用される場合、次のように言います。

loggername.info('this is an awfully long line which must be separated'
    'into two lines, am I doing it right? {0}'.format('nope..'))

またはこれを考慮してください:

loggername.info('this is an {0} {1} line which must be separated'
    'into {2} lines, am I doing it right? {0}'.format(
    'awfully', 'short', 'three', 'nope..')
)

さて、この最後は関数呼び出しスタイルにもいくらか関連しています。多くの引数、長い文字列がありますが、これらの種類の行をどのように分離するのが最善でしょうか?

4

2 に答える 2

9

読み取り可能なPythonコードの記述方法に関するガイダンスについては、PEP8 -Pythonコードのスタイルガイドを参照してください。強くお勧めします。

于 2012-06-07T16:43:50.270 に答える
1

Levonの答えは完全に客観的であるため、間違いはありません(ただし、主観的な文書に基づいている可能性があります)。PEP8を標準と見なす必要があります。個人的な偏見に基づく回答:

dict_name = {'test': 'somevalue',
             'test2': 'other'}

IDLE(Pythonの統合開発環境)は、最初のコンマの後にreturn / enterを押すと、この方法で辞書をフォーマットします。その結果、私はこのスタイルを大きな辞書によく使用します。

function_name(longer_arg2, longer_arg2, longer_arg3,
              longer_arg4)

また、IDLEを考慮すると、3番目のコンマの後にreturn / enterを押すと、プログラムはこのように関数をインデントします。私は通常このスタイルに従いますが、標準スタイルには常に例外があります。

loggername.info('This is an awfully long line which must be separated into two \
lines. Am I doing it right? {}'.format('No.'))

これはおそらく私の最も主観的なコメントです。プログラムの行は80文字以下にする必要があります。それはおそらくコードとテキストの両方に当てはまるはずです。ブロック引用符()を作成できることを忘れないでください'''

于 2012-06-07T19:30:14.897 に答える