Python中是否可以将长行分成多行? [重复]

问题描述 投票:0回答:7

就像C一样,你可以将一条长线分成多条短线。但是在Python中,如果我这样做,就会出现缩进错误...可能吗?

python line-breaks
7个回答
775
投票

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

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

隐式续行示例:

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

关于二元运算符换行的主题,它接着说:

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

在Python代码中,只要约定在本地一致,就允许在二元运算符之前或之后中断。对于新代码,建议使用 Knuth 风格(在运算符之前换行)。

显式续行示例:

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

251
投票
有不止一种方法可以做到这一点。

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的隐含 圆括号、方括号和大括号内的续行。如果有需要的话, 您可以在表达式周围添加一对额外的括号,但是 有时使用反斜杠看起来更好。确保缩进续行 适当地。破解二进制文件的首选位置 运算符位于运算符

之后,而不是之前。


51
投票
如果你想给变量分配一个长字符串,你可以这样做:

net_weights_pathname = ( '/home/acgtyrant/BigDatas/' 'model_configs/lenet_iter_10000.caffemodel')
不要添加任何逗号,否则你会得到一个包含很多字符串的元组!


24
投票
它也适用于 Python:

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

15
投票
尝试输入连续文本(例如查询)时,请勿在行尾添加逗号,否则您将得到一串字符串而不是一个长字符串:

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

的评论,抱歉,没看到。 :/


11
投票
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"
    

9
投票
据我所知,这是可以做到的。 Python 对于三引号字符串 (

"""like this"""

) 具有隐式续行(在圆括号、中括号和字符串内),并且续行的缩进并不重要。有关更多信息,您可能需要阅读来自 python.org 的关于词法分析的
这篇文章

© www.soinside.com 2019 - 2024. All rights reserved.