PEP8 E128:无法弄清楚为什么要标记一条线

Gab*_*iel 4 python pep8 sublimetext3 sublime-text-plugin

我正在使用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]
Run Code Online (Sandbox Code Playgroud)

被标记为:

[W] PEP 8 (E128): continuation line under-indented for visual indent
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的每一个缩进(如此处所示),但Anaconda一直将该行标记为PEP8 E128警告.

我在这做错了什么?

Mar*_*ers 8

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

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

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

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

这称为悬挂缩进.

参见PEP 8 的缩进部分 ; 这些注意事项递归地应用于每个嵌套的调用表达式.