我应该如何打破这么长的 Python 行?
How should I break this long Python line?
我正在格式化将包含在报告附录中的代码,因此尊重 80 个字符的行不仅仅是对 PEP8 的狂热,因为如果行太长,它们会继续超过纸。
通常,使用 PEP8 推荐和一些逻辑来打破长行,事情很容易,但我遇到了这个 90 个字符的长行,它缩进了 3 次:
valleys.append(data.index(min(data[frontieres[f*2+1]:frontieres[f*2+2]])))
我应该如何打破它,如果可能的话不改变变量名称?
只需使用变量:
some_data = data[frontieres[f*2+1]:frontieres[f*2+2]]
min_some_data = min(some_data)
data_index = data.index(min_some_datan)
valleys.append(data_index)
data_range = data[frontieres[f*2+1]:frontieres[f*2+2]]
data_min = min(data_range)
index_min = data.index(data_min)
valleys.append(index_min)
显然,您可以内联任何引入的变量。
我不喜欢我建议你的想法,因为好的做法是将该行重写为更易读的内容。但是,如果您必须将现有代码更好地格式化为科学报告,那么这里有我的建议:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)))
Python 允许在没有任何额外技巧的情况下在括号之间拆分行。
更正确的方法是:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)
)
)
事实上,您也可以这样拆分索引。
断线有两种方式
使用\
:
您可以将它插入任何地方 (甚至在变量之间) 并从那里取下来:
valleys.append(data.index(min(data[frontieres[f*2+1]\
:frontieres[f*2+2]])))
从 (
中断:
任何函数都可以在另一行接受参数
valleys.append(data.index(min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)))
为了便于阅读,我更喜欢后一种。
我正在格式化将包含在报告附录中的代码,因此尊重 80 个字符的行不仅仅是对 PEP8 的狂热,因为如果行太长,它们会继续超过纸。
通常,使用 PEP8 推荐和一些逻辑来打破长行,事情很容易,但我遇到了这个 90 个字符的长行,它缩进了 3 次:
valleys.append(data.index(min(data[frontieres[f*2+1]:frontieres[f*2+2]])))
我应该如何打破它,如果可能的话不改变变量名称?
只需使用变量:
some_data = data[frontieres[f*2+1]:frontieres[f*2+2]]
min_some_data = min(some_data)
data_index = data.index(min_some_datan)
valleys.append(data_index)
data_range = data[frontieres[f*2+1]:frontieres[f*2+2]]
data_min = min(data_range)
index_min = data.index(data_min)
valleys.append(index_min)
显然,您可以内联任何引入的变量。
我不喜欢我建议你的想法,因为好的做法是将该行重写为更易读的内容。但是,如果您必须将现有代码更好地格式化为科学报告,那么这里有我的建议:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)))
Python 允许在没有任何额外技巧的情况下在括号之间拆分行。
更正确的方法是:
valleys.append(
data.index(
min(
data[frontieres[f*2+1]:frontieres[f*2+2]]
)
)
)
事实上,您也可以这样拆分索引。
断线有两种方式
使用
\
:
您可以将它插入任何地方 (甚至在变量之间) 并从那里取下来:valleys.append(data.index(min(data[frontieres[f*2+1]\ :frontieres[f*2+2]])))
从
(
中断:
任何函数都可以在另一行接受参数valleys.append(data.index(min( data[frontieres[f*2+1]:frontieres[f*2+2]] )))
为了便于阅读,我更喜欢后一种。