在某些情况下,pep8是否无法识别"#noqa"?

mhu*_*cka 4 python coding-style pep8

出于可读性的原因,我更喜欢对齐某些类型的语句,例如在以下情况中(这涉及一些PyParsing代码,但这个细节并不重要):

_otherwise_stmt = _OTHERWISE ('otherwise statement')
_else_stmt      = _ELSE      ('else statement')
_end_stmt       = _END       ('end statement')
Run Code Online (Sandbox Code Playgroud)

为此,pep8抱怨E221("操作员前的多个空格")和E211("前面的空格"("").如果我放在# noqa每一行的末尾,pep8 抱怨这些线.但是,对于其他结构在我的文件的其他地方,# noqa工作正如预期的那样.我很困惑为什么# noqa不能pep8按照这些特定结构的预期工作.

这是pep8程序中的错误,还是我在这里做错了什么?

Mar*_*ers 7

pep8脚本仅允许您通过# noqa注释禁用特定错误代码.

请参阅错误代码 ; 只有标记的错误代码(^)才能以这种方式静音.E211和E221不在其中(没有E2*代码):

(^)可以使用# noqa特殊注释在行级别禁用这些检查.应该为特殊情况保留这种可能性.

就个人而言,我更喜欢使用与PyFlakes 结合使用的flake8工具,pep8让您# noqa更自由地使用标记.


Sim*_*ser 5

这是一个众所周知的问题(" 大多数错误都无法满足#noqa "),具体取决于您的要求.

该工具允许您使用# noqa某些警告但不能用于E221E211.