python - PEP8 E128 : can't figure out why a line is being flagged

标签 python sublimetext3 sublime-text-plugin pep8

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

我不明白为什么 pars_f_name) 行在下面的 block 中:

            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 警告。

我在这里做错了什么?

最佳答案

您需要进一步缩进 str.format() 参数:

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)

这叫做 hanging indent .

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

关于python - PEP8 E128 : can't figure out why a line is being flagged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282917/

相关文章:

visual-studio-code - Visual Studio 代码按子词空白导航

sass - 无法让 scss-lint 在 Sublime Text 3 中工作

javascript - sublime 文本的排版工具

python - 通过 Sublime Text 3 插件传递元素

python - 使用 3d 数据和参数在 Scipy 中进行曲线拟合

python - 字符串转换器程序不工作

python - 将 numpy boolean 选择器限制为前几个真值的有效方法

python - pyserial:循环波特率

node.js - 为 node.js 配置 sublime text 3 文件夹 node_modules

composer-php - 什么是 phpmd 以及如何使用它?