首页 > 解决方案 > 如何在反斜杠后阻止 autopep 缩进行?

问题描述

autopep8 转换此代码

sum_of_two_numbers = first \
                     + second

对此

sum_of_two_numbers = first \
    + second

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

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


UPD。从 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 也没有正确对齐这个例子。

标签: pythonautopep8pycodestyle

解决方案


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


推荐阅读