就像C语言一样,您可以将长行分解为多个短行。但在Python中,如果我这样做,就会出现缩进错误……这可能吗?


当前回答

DB相关代码在多行中看起来更容易,用一对三引号括起来:

SQL = """SELECT
            id, 
            fld_1, 
            fld_2, 
            fld_3, 
            ...... 
         FROM some_tbl"""

而不是下面的一行字:

SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"

其他回答

DB相关代码在多行中看起来更容易,用一对三引号括起来:

SQL = """SELECT
            id, 
            fld_1, 
            fld_2, 
            fld_3, 
            ...... 
         FROM some_tbl"""

而不是下面的一行字:

SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"

做这件事的方法不止一种。

1)长篇大论

>>> def print_something():
         print 'This is a really long line,', \
               'but we can make it across multiple lines.'

2)使用括号:

>>> def print_something():
        print ('Wow, this also works?',
               'I never knew!')

3).再次使用\:

>>> x = 10
>>> if x == 10 or x > 0 or \
       x < 100:
       print 'True'

引用PEP8:

较长的包装方式 行是通过使用Python的隐含 括号、括号和大括号内的行续。如果有必要, 您可以在表达式周围添加一对额外的括号,但是 有时使用反斜杠看起来更好。确保将继续的行缩进 适当。二进制转换的首选位置 运算符在运算符之后,而不是在它之前。

来自PEP 8 - Python代码风格指南:

对长行进行包装的首选方法是使用Python的隐含行 括号和大括号内的延续。如有需要,请 可以在表达式周围额外添加一对括号,但有时 使用反斜杠看起来更好。确保将继续的行缩进 适当。

隐式续行示例:

a = some_function(
    '1' + '2' + '3' - '4')

关于二进制操作符周围的换行,它继续说:

几十年来,推荐的风格是在二进制操作符之后中断。 但这可能在两个方面损害可读性:操作符往往分散在屏幕上的不同列上,并且每个操作符都从其操作数移动到上一行。

在Python代码中,只要约定在局部一致,就允许在二进制操作符之前或之后进行换行。对于新代码,建议使用Knuth的样式(在操作符之前换行)。

显式续行示例:

a = '1'   \
    + '2' \
    + '3' \
    - '4'

当尝试输入连续的文本(比如,一个查询)时,不要在行末放逗号,否则你会得到一个字符串列表,而不是一个长字符串:

queryText= "SELECT * FROM TABLE1 AS T1"\
"JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\
"JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\
"WHERE SOMETHING BETWEEN <WHATEVER> AND <WHATEVER ELSE>"\
"ORDER BY WHATEVERS DESC"

有点像这样。

acgtyrant上也有这样的评论,抱歉,没看到。:/

它在Python中也适用:

>>> 1+\
      2+\
3
6
>>> (1+
          2+
 3)
6