重构代码后,撤消pep8最大行长度格式,使其小于max-line-length

时间:2018-03-16 20:43:16

标签: python formatting indentation pep8

我在攻击模式下使用pep8(参数-a)。像往常一样,当我有这样的代码超过指定的char-length:

plt.legend(handles=[indrnn_plot, lstm_plot, gru_plot, rnn_plot, irnn_plot], loc=0)

pep8将其格式化为:

plt.legend(
    handles=[
        indrnn_plot,
        lstm_plot,
        gru_plot,
        rnn_plot,
        irnn_plot],
    loc=0)

我发现自己在编写代码时不断重构代码,有时会更改代码,以便单行代码不再超过我的最大字符长度:

plt.legend(
    handles=[
        indrnn_plot,
        lstm_plot,],
    loc=0)

这对我来说太频繁了,我发现自己花了太多时间去清理pep8拒绝撤消的混乱。"为了将上面的代码恢复为单行表示,我将手动删除换行符和空格:

plt.legend(handles=[indrnn_plot, lstm_plot,], loc=0)

我需要我的代码简洁(就行数而言),但仍遵循pep8格式指南,以避免超出最大行长。换句话说,我需要我的重构代码是当char长度不再大于max char length时,用较少的行表示。

是否有一个参数可以传递给pep8或一个技巧,以获得如上所述的重构代码自动格式化回单行表示

1 个答案:

答案 0 :(得分:1)

看起来它可能有你需要的内置,但我没有看到预建的选项

>>> import autopep8
>>> autopep8.join_logical_line("""plt.legend(
...     handles=[
...         indrnn_plot,
...         lstm_plot,],
...     loc=0)""".decode('utf-8'))
u'plt.legend( handles=[ indrnn_plot, lstm_plot,], loc=0)\n'
>>> print(u'plt.legend( handles=[ indrnn_plot, lstm_plot,], loc=0)\n')
plt.legend( handles=[ indrnn_plot, lstm_plot,], loc=0)
>>> print(len(u'plt.legend( handles=[ indrnn_plot, lstm_plot,], loc=0)\n'))
55

所以你需要按逻辑行浏览你的文件,检查连接是否小于或等于79个字符然后替换它。