我该如何做一个换行符(续行)?

我有很长的一行代码,我想在多行之间分解。 我使用什么和语法是什么?

例如,添加一串字符串,

e = 'a' + 'b' + 'c' + 'd'

并将其分成两行:

e = 'a' + 'b' +
    'c' + 'd'

线是什么? 你可以在下一行有参数而没有任何问题:

a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5, 
            blahblah6, blahblah7)

否则,你可以做这样的事情:

if a == True and 
   b == False

查看风格指南了解更多信息。

从您的示例行:

a = '1' + '2' + '3' + 
    '4' + '5'

要么:

a = ('1' + '2' + '3' +
    '4' + '5')

请注意,风格指南指出,使用带括号的隐式连续是首选,但在这种特殊情况下,只需在表达式周围添加括号可能是错误的方法。


从Python代码的风格指南:

包装长行的首选方式是在括号,括号和大括号内使用Python的隐含行连续。 通过在圆括号中包装表达式,可以将多条线分成多行。 这些应该优先使用反斜杠进行续行。

有时反斜杠可能仍然适用。 例如,long,multiple with-statements不能使用隐式延续,所以反斜杠是可以接受的:

with open('/path/to/some/file/you/want/to/read') as file_1, 
        open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

另一个这样的情况是assert语句。

确保适当缩进续行。 破解二元运算符的首选位置在运算符之后 ,而不是在它之前。 一些例子:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):
        if (width == 0 and height == 0 and
                color == 'red' and emphasis == 'strong' or
                highlight > 100):
            raise ValueError("sorry, you lose")
        if width == 0 and height == 0 and (color == 'red' or
                                           emphasis is None):
            raise ValueError("I don't think so -- values are %s, %s" %
                             (width, height))
        Blob.__init__(self, width, height,
                      color, emphasis, highlight)

编辑:PEP8现在推荐与数学家及其出版商使用的相反约定(打破二元运算),以提高可读性。

Donald Knuth 二元运算符之前突破的风格垂直对齐操作员,从而减少眼睛在确定添加和减去哪些项目时的工作量。

从PEP8开始:应该在二元运算符之前还是之后断行?

Donald Knuth在他的“计算机与排版”系列中解释了传统规则:“尽管二进制操作和关系之后段落中的公式总是中断,但显示的公式总是在二进制操作之前中断”[3]。

遵循数学的传统通常会产生更具可读性的代码:

# Yes: easy to match operators with operands
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

在Python代码中,只要约定在本地一致,就可以在二元运算符之前或之后中断。 建议使用新代码Knuth的风格。

[3]:Donald Knuth的The TeXBook,第195和196页


使用反斜杠结束行的危险在于,如果在反斜杠之后添加了空格(当然,这很难看出),反斜杠不再按照您的想法进行。

有关更多信息,请参阅Python惯用语和反习惯用法(适用于Python 2或Python 3)。

链接地址: http://www.djcxy.com/p/9973.html

上一篇: How can I do a line break (line continuation)?

下一篇: What does the PHP syntax $var1