17

C ++では、コードの行が長くなりすぎた場合、またはチェックがたくさんある場合はifステートメントの場合に、コード行を分割するのが好きです。

if (x == 10 && y < 20 && name == "hi" && obj1 != null) 
    // Do things 

// vs

if (x == 10
    && y < 20
    && name == "hi"
    && obj1 != null)
{
    // Do things
}

AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, mAppliedEffects[inEffectIDHash], inTagNameHash);
// vs
AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, 
    mAppliedEffects[inEffectIDHash], inTagNameHash);

Pythonでは、コードブロックは「;」ではなくタブで定義されます。行の終わりに

if number > 5 and number < 15:
    print "1"

Pythonで複数行は可能ですか?お気に入り...

if number > 5 
and number < 15:
    print "1"

これは不可能だと思いますが、かっこいいです!

4

4 に答える 4

40

スタイルガイド(PEP-8)によると:

長い行を折り返すための推奨される方法は、かっこ、角かっこ、中かっこ内にPythonの暗黙の行継続を使用することです。式を括弧で囲むことにより、長い行を複数の行に分割できます。これらは、行の継続に円記号を使用するよりも優先して使用する必要があります。続く行を適切にインデントしてください。二項演算子を回避するのに適した場所は、演算子の前ではなく、演算子の後です。

方法1:括弧を使用する

if (number > 5 and
        number < 15):
    print "1"

方法2:円記号を使用する

if number > 5 and \
number < 15:
    print "1"

方法3:読みやすくするために円記号とインデントを使用する

if number > 5 and \
        number < 15:
    print "1"
于 2013-01-19T18:47:17.317 に答える
12

式を括弧で囲むと、式を複数の行に分割できます。

if (x == 10
    and y < 20
    and name == "hi"
    and obj1 is not None):
    # do something

リストまたは辞書の作成に使用される角かっこまたは中かっこについても同じことが言えます。

mylist = [1, 2, 3, 4,
          5, 6, 7, 8]

mydict = {1: "a", 2: "b",
          3: "c", 4: "d"}
于 2013-01-19T18:47:28.317 に答える
3

pep8標準ガイドは、括弧内のリストの新しい行をインデントしているように見えますが、長い行の場合は、行の終わりにバックスラッシュを提案します。

新しい行をインデントする

行末の円記号

于 2013-01-19T20:22:48.397 に答える
1

\行末をエスケープするシンボルを配置できます。

if number > 5 \
   and number < 15:
    print '1'

場合によっては(括弧内など)、行末をエスケープするために特別な記号は必要ありません。

Python字句解析に関するドキュメントで詳細を参照してください:

論理行の終わりは、トークンNEWLINEで表されます。NEWLINEが構文で許可されている場合を除いて、ステートメントは論理行の境界を越えることはできません(たとえば、複合ステートメントのステートメント間)。論理ラインは、明示的または暗黙的なライン結合ルールに従って、1つ以上の物理ラインから構築されます。

于 2013-01-19T18:46:50.000 に答える