python - 使 flake8 区分未定义函数和星形导入

标签 python python-import pep8 flake8

我有一个相当大的项目,我试图在发布之前清理它,但是当我运行 flake8 时,我得到了很多

'F405 <function> may be undefined, or defined from star imports: generic_functions`

我可以通过替换行来避免这种情况:

from generic_functions import *

在我文件的开头,但是:

  1. 我确实使用了其中的所有函数,所以我不明白输入每个函数超过 80 个字符的限制是多么的 pythonic:

     from generic_functions import (function1, function2, function3, function4, function5, function6, function7...)
    
  2. 执行上述操作会很乏味,尤其是当我需要在 generic_functions.py 中添加或删除数十个函数时

另一个选项是禁用 F405 警告,但如果该函数确实未定义怎么办?允许 star 导入同时仍然捕获任何未定义的东西会很好。有没有办法做到这一点?我尝试将 # noqa 添加到导入行,但它似乎没有帮助。

最佳答案

您可以执行以下操作:

  1. 将您的导入保留为 from generic_functions import *
  2. 运行 flake8 作为 flake8 --ignore=F405 file.py .真不知道为什么# noqa不起作用,但是 --ignore
  3. 使用 pylint 测试其余可能的错误。 Pylint 能够确定 <function>generic_functions 定义和导入.

关于python - 使 flake8 区分未定义函数和星形导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56265620/

相关文章:

python - 在Python中迭代嵌套列表

python - 在 Django 表单中打开/编辑/保存记录

dataframe - 将 QVD 文件导入 Jupyter notebook - python2

python - 关于 Python 导入的说明

python - Pyflakes + pep8 在正常模式下检查 vim

python - django链表对象过滤器

python - 传递 global 作为引用

python - 相对导入 - ModuleNotFoundError : No module named x

python - 文档字符串应该放在装饰器之前还是之后?

python - 在 emacs Python 模式下,如何为文档字符串和代码设置不同的自动填充宽度?