17

在 C++ 中,如果代码行太长,或者如果其中有很多检查,我喜欢拆分我的代码行。

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 的隐含行继续。通过将表达式括在括号中,可以将长行分成多行。这些应该优先使用反斜杠来继续行。确保适当缩进续行。打破二元运算符的首选位置是在运算符之后,而不是在它之前。

方法一:使用括号

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(例如,复合语句中的语句之间)。一条逻辑线路由一条或多条物理线路按照显式或隐式线路连接规则构建而成。

于 2013-01-19T18:46:50.000 回答