当我在只有一行的文件上运行flake8时: def O(): pass
我得到了以下错误,尽管函数运行良好:
/tmp/a.py:1:5: E743 ambiguous function definition 'O'
为什么 flake8 会失败?为什么我不只收到警告?
从文档中:
不要定义名为"l"、"o"或"i"的函数 (E743(
名为I
、O
和l
的函数可能很难阅读。这是因为这封信I
和 字母l
容易混淆,字母O
和数字0
很容易混淆。将这些函数的名称更改为更具描述性的名称。
其他链接
- https://www.python.org/dev/peps/pep-0008/#names-to-avoid
flake8 是一个用于在 Python 项目中强制执行 PEP8 样式一致性的实用程序,根据 pep8 函数命名约定:函数名称应为小写,必要时用下划线分隔单词以提高可读性。
如果您希望 flake8 忽略此特定错误(这违背了 linting 目的(,请将其添加到您的setup.cfg
文件中:
[flake8]
ignore = E743
或使用以下选项运行它:flake8 --ignore=E743
但是,如果您只想要 flake8 不会失败并且只是显示警告,您必须使用 --exit-zero
运行它:
flake8 --exit-zero