PEP8 E128:无法弄清楚线路被标记的原因

时间:2015-05-17 03:00:10

标签: python sublimetext3 sublime-text-plugin pep8

我使用Sublime + Anaconda,它具有内置的PyLint功能。

我无法弄清楚下一个区块中pars_f_name)行的原因:

            else:
                # Get parameters file name from path.
                pars_f_name = pars_f_path.split('/')[-1]
                print ("  WARNING: Unknown '{}' ID found in line {}\n"
                       "  of '{}' file.\n").format(reader[0], l + 1,
                       pars_f_name)

# Pack params in lists.
pl_params = [flag_make_plot, plot_frmt, plot_dpi]

被标记为:

[W] PEP 8 (E128): continuation line under-indented for visual indent

我已经尝试了我能想到的每一个缩进(如建议here)但Anaconda一直将该行标记为PEP8 E128警告。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:8)

您需要进一步缩进string::compare()参数:

str.format()

作为个人选择,我将这些参数全部放在一行,缩进:

print ("  WARNING: Unknown '{}' ID found in line {}\n"
       "  of '{}' file.\n").format(reader[0], l + 1,
                                   pars_f_name)
#                                  ^^^^^^^^^^^^

这称为hanging indent

见PEP 8的Indentation section;这些注意事项递归地应用于每个嵌套的调用表达式。

答案 1 :(得分:1)

替换:

print ("  WARNING: Unknown '{}' ID found in line {}\n"
       "  of '{}' file.\n").format(
           reader[0], l + 1, pars_f_name)

使用:

print ("  WARNING: Unknown '{}' ID found in line {}\n"
                   "  of '{}' file.\n").format(reader[0], l + 1,
                   pars_f_name)

它基本上抱怨print( " WARNING: Unknown '{}' ID found in line {}\n" " of '{}' file.\n".format( reader[0], l + 1, pars_f_name ) ) 部分缺少缩进;但按照上面的例子格式化你的代码使它更具可读性!

更新:这称为"悬挂缩进"在PEP8中(参见:@ MartijnPieters的回复)这个回答更多的是"这里是如何修复它并使它同时可读的#34;。 (不幸的是,虽然有很多相互竞争的主观意见!