如何在反斜杠后阻止 autopep 缩进?

问题描述

autopep8 转换此代码

sum_of_two_numbers = first \
                     + second

到这里

sum_of_two_numbers = first \
    + second

这是一个错误吗?如果是这样,它是 pycodestyle 还是 autopep8 中的错误?是否有任何我可以忽略的错误代码来防止这种行为?如果我忽略 E127 和 E128,它也会停止缩进所有其他情况。

我知道如果我使用方括号而不是反斜杠它会正常工作,但是,有一个现有存储库在我不想更改的某些地方使用反斜杠。


更新。添加来自 pep8 (https://www.python.org/dev/peps/pep-0008/#maximum-line-length)

的另一个示例

反斜杠有时可能仍然合适。例如,长, 多个 with 语句不能使用隐式延续,所以 反斜杠是可以接受的:

with open('/path/to/some/file/you/want/to/read') as file_1,\
     open('/path/to/some/file/being/written','w') as file_2:
    file_2.write(file_1.read()) ```

autopep8 也没有正确对齐这个例子。

解决方法

据我所知,您不能在不禁用其他自动缩进的情况下仅禁用此功能。如果您正在运行 autopep8 这意味着您正在尝试遵循 pep8 准则,那么在示例的情况下,您应该真正使用隐含的延续(没有反斜杠,前一行的“+”,4 个空格缩进。)如果您正在使用autopep8 在一个项目上,你必须愿意让 autopep8 为你格式化项目。我不确定这里的反斜杠附件是什么,但这可能不是格式化您正在做的事情的最佳方式。