就像C语言一样,您可以将长行分解为多个短行。但在Python中,如果我这样做,就会出现缩进错误……这可能吗?
当前回答
来自PEP 8 - Python代码风格指南:
对长行进行包装的首选方法是使用Python的隐含行 括号和大括号内的延续。如有需要,请 可以在表达式周围额外添加一对括号,但有时 使用反斜杠看起来更好。确保将继续的行缩进 适当。
隐式续行示例:
a = some_function(
'1' + '2' + '3' - '4')
关于二进制操作符周围的换行,它继续说:
几十年来,推荐的风格是在二进制操作符之后中断。 但这可能在两个方面损害可读性:操作符往往分散在屏幕上的不同列上,并且每个操作符都从其操作数移动到上一行。
在Python代码中,只要约定在局部一致,就允许在二进制操作符之前或之后进行换行。对于新代码,建议使用Knuth的样式(在操作符之前换行)。
显式续行示例:
a = '1' \
+ '2' \
+ '3' \
- '4'
其他回答
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的隐含 括号、括号和大括号内的行续。如果有必要, 您可以在表达式周围添加一对额外的括号,但是 有时使用反斜杠看起来更好。确保将继续的行缩进 适当。二进制转换的首选位置 运算符在运算符之后,而不是在它之前。
据我所知,这是可以做到的。Python为三引号字符串("""像这样""" ")提供隐式续行(在圆括号、括号和字符串中),续行的缩进并不重要。要了解更多信息,您可能需要阅读来自python.org的这篇关于词法分析的文章。
它在Python中也适用:
>>> 1+\
2+\
3
6
>>> (1+
2+
3)
6
来自PEP 8 - Python代码风格指南:
对长行进行包装的首选方法是使用Python的隐含行 括号和大括号内的延续。如有需要,请 可以在表达式周围额外添加一对括号,但有时 使用反斜杠看起来更好。确保将继续的行缩进 适当。
隐式续行示例:
a = some_function(
'1' + '2' + '3' - '4')
关于二进制操作符周围的换行,它继续说:
几十年来,推荐的风格是在二进制操作符之后中断。 但这可能在两个方面损害可读性:操作符往往分散在屏幕上的不同列上,并且每个操作符都从其操作数移动到上一行。
在Python代码中,只要约定在局部一致,就允许在二进制操作符之前或之后进行换行。对于新代码,建议使用Knuth的样式(在操作符之前换行)。
显式续行示例:
a = '1' \
+ '2' \
+ '3' \
- '4'
推荐文章
- 使用Pandas为字符串列中的每个值添加字符串前缀
- ImportError:没有名为matplotlib.pyplot的模块
- 在python中遍历对象属性
- 如何在Python中使用方法重载?
- 在Python中提取文件路径(目录)的一部分
- 如何安装没有根访问权限的python模块?
- 尝试模拟datetime.date.today(),但不工作
- 将行添加到数组
- 如何在Python中直接获得字典键作为变量(而不是通过从值搜索)?
- Python:为什么functools。部分有必要吗?
- 如何用python timeit对代码段进行性能测试?
- Python迭代器中的has_next ?
- ConfigParser中的列表
- 由于环境错误无法安装包:[Errno 13]
- 如何测试一个字符串是否包含列表中的一个子字符串,在熊猫?