暗黙的または明示的な行結合の推奨事項


9

Pythonでの暗黙的なライン結合明示的なライン結合の推奨事項について教えてください。

特に、1つの形式を他の形式よりも好きですか?一般的なデフォルトとして何をお勧めしますか?どちらを選択するかについて、どのような基準がありますか。どちらかを優先する場合は、いつ他を例外にしますか?

この質問には自分の偏見を反映した回答を心に留めていますが、自分の回答を投稿する前に、他の人の考えを知りたいと思います...そして、あなたが私が思っているよりも良い基準のセットを持つことができるなら、それなら私は確かにあなた自身の答えを受け入れます。

一部の推奨事項は他のプログラミング言語でこの選択に一般化されている可能性がありますが、言語固有の機能のため、Pythonの方が私自身のバイアスがやや強いため、一般的な理由とPython中心の理由の両方を知りたいと思いますこのトピックについて持っています。

いくつかの背景については、スタックオーバーフローに関する特定の質問を中心に議論が行われましたが、SOに関する回答がこの接線で乱雑にならないようにするために、議論をここに移動する方が適切であると考えました。元の質問。ディスカッションが進んだサンプルコードスニペットについては、その質問とその回答を確認できます。

これは簡単な例です:

join_type = "explicit"
a = "%s line joining" \
    % (join_type)
# versus
join_type = "implicit"
b = ("%s line joining"
     % (join_type))

ベストプラクティスの質問は、コードレビューのトピックから外れています。あなたの質問をより良い場所に移行しました。
Winston

1
@WinstonEwertは投稿する前に、CodeReview FAQProgrammers FAQをよく調べました。CodeReviewを選択したのは、そこで尋ねる質問の種類には「コードでのベストプラクティスとデザインパターンの使用」が含まれていると明示されているためです。問題のコードの簡略版を含めましたが、これはどのようにトピック外ですか?
aculich

@WinstonEwert メタでこれについてコメントしたい場合は、CodeReview FAQを明確にすることについて質問を投稿しました。
aculich

回答:


8

PEP8と呼ばれるコーディングスタイルドキュメントがあります。\<NL>括弧を使用できる場所では使用しないことをお勧めします。

長い行をラップする好ましい方法は、Pythonの暗黙の行継続を括弧、大括弧、中括弧で囲むことです。長い行は、式を括弧で囲むことにより、複数の行に分割できます。これらは、行継続のためにバックスラッシュを使用するよりも優先して使用する必要があります。継続する行を適切にインデントしてください。2項演算子を回避するのに適した場所は、演算子の前ではなく、演算子のです。

全文:http : //www.python.org/dev/peps/pep-0008/(セクションコードレイアウト)

これは必須ではありませんが、チームに複数のPythonコミッターがいる場合に特に有用な、許容できる良い慣行を定義しています。


1

私は暗黙的な行結合を使用する傾向があります。それは、より読みやすく、通常、括弧によるマッチングのおかげで式全体のインデントとハイライトに関してエディタからのサポートが優れているためです。


0

現在、私は好む

join_type = "kiding"
a = "%s line joining" % (join_type)

B-))

式の最後の括弧の乱雑さが好きではないので、明示的な線の結合を好む傾向があります。
しかし、文字列の書き込みによって占有される幅を減らすために、Implicit Lines Joiningが好きです。
次に、場合によっては、2つの方法を混在させないように恥ずかしい思いをする


1
冗談はさておき、より多くの入力が必要で、コードを編集するときにすべてのバックスラッシュをきれいに揃えておくことが難しいため、明示的な結合は好きではありません。
martineau 2013年

どうやら@eyquemはLISPを書いたことがありません...
カウバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.