35

Python は「空白で区切られた」言語です。ただし、セミコロンの使用許可されています。たとえば、次のように動作しますが、眉をひそめています。

print("Hello!");
print("This is valid");

私は数年前から Python を使用していますが、セミコロンを使用したのは、Python で 1 回限りのコマンドライン スクリプトを生成するときだけです。

python -c "import inspect, mymodule; print(inspect.getfile(mymodule))"

またはSOのコメントにコードを追加する(つまり、「試してみてくださいimport os; print os.path.join(a,b)」)

また、同様の質問に対するこの回答で、次のように、セミコロンを使用して 1 つの行ifブロックを作成できることにも気付きました。

if x < y < z: print(x); print(y); print(z) 

これは、私が示した 2 つの使用例 (コマンドライン スクリプトとコメント) に便利です。


上記の例は、コードを段落形式でやり取りしたり、短いスニペットを作成したりするためのものですが、製品コードベースでは期待できないものです。

ここに私の質問があります: Python では、製品コードでセミコロンを使用する理由はありますか? 私が引用した理由だけでそれらが言語に追加されたと思いますが、グイドがより壮大な計画を念頭に置いていた可能性は常にあります. 意見はありません。私は、セミコロンが有用であった既存のコードの例、またはセミコロンの使用に関するpython docsまたはGuidoからのある種のステートメントのいずれかを探しています。

4

2 に答える 2

24

PEP 8は公式のスタイルガイドであり、次のように述べています。

複合ステートメント (同じ行に複数のステートメントがある) は一般的に推奨されません。

(PEP のこの直後の例も参照してください。)

私は PEP 8 のすべてに同意するわけではありませんが、信頼できる情報源を探しているなら、それで終わりです。複数ステートメント行は、最後の手段としてのみ使用してください。(python -cその場合、実際の改行を使用する方法がないため、このような最後の手段の良い例です。)

于 2013-10-14T17:50:23.057 に答える