1. ホーム
  2. python

[解決済み] タプルの定義に末尾にカンマがある場合の構文ルールは何ですか?

2022-05-27 08:46:57

質問

単一要素のタプルの場合、末尾のコンマは必須です。

a = ('foo',)

複数の要素を持つタプルの場合はどうでしょうか?末尾のコンマがあってもなくても、どちらも有効なようです。これは正しいのでしょうか?私の意見では、末尾のカンマがあった方が編集しやすいと思います。これは悪いコーディングスタイルなのでしょうか?

a = ('foo1', 'foo2')
b = ('foo1', 'foo2',)

どのように解決するのですか?

空のタプル以外のすべてのケースで、カンマは重要なものです。括弧が必要なのは、他の構文上の理由、つまりタプルを関数の引数のセットから区別するため、演算子の優先順位、または改行を許可するため、である。

タプル、リスト、関数引数の末尾のカンマは、特に長い初期化文が複数行にまたがる場合、良いスタイルと言えます。常に末尾のカンマを含めると、別の要素を追加することを期待して最後に別の行を追加することがなくなり、代わりに有効な式を作成するだけになります。

a = [
   "a",
   "b"
   "c"
]

2つの要素からなるリストとして始まり、後に拡張されたと仮定すると、おそらくすぐに明らかにならない方法で間違っていることになります。常に末尾のカンマを含めれば、その罠を避けることができます。