1

これら 2 つの文字列の間にコンマがあるはずです

foo = ['dumb'
'error']

ただし、カンマを忘れると、構文エラーが発生するのではなく、文字列がマージされるだけです。あなたの結果は

['dumberror']

私はこれを追跡するのに何時間も費やしました。Python インタープリターがこれらの文字列をマージするのはなぜですか?

4

2 に答える 2

6

これは、文字列リテラルを使用してソース コードでより適切な書式設定を可能にする、文書化された機能です。

複数の隣接する文字列またはバイト リテラル (空白で区切られた) は、異なる引用規則を使用する可能性があり、それらの意味はそれらの連結と同じです。したがって、「hello」「world」は「helloworld」と同等です。この機能を使用して、必要なバックスラッシュの数を減らしたり、長い文字列を長い行に分割したり、文字列の一部にコメントを追加したりすることさえできます。

ソース

このメモも覚えておく価値があります。

この機能は構文レベルで定義されていますが、コンパイル時に実装されることに注意してください。実行時に文字列式を連結するには、「+」演算子を使用する必要があります。また、リテラル連結では、コンポーネントごとに異なる引用スタイルを使用できることに注意してください (生の文字列と三重引用符の文字列を混在させても)。

于 2012-04-03T20:38:13.507 に答える
1

これはバグではなく、機能です。Python は、文字列の間に空白しかない連結文字列として文書化されています。

http://docs.python.org/release/2.5.2/ref/string-catenation.html

于 2012-04-03T20:38:14.740 に答える