我有一个相当大的项目,我试图在发布之前清理它,但是当我运行 flake8 时,我得到了很多
'F405 <function> may be undefined, or defined from star imports: generic_functions`
我可以通过替换行来避免这种情况:
from generic_functions import *
在我文件的开头,但是:
我确实使用了其中的所有函数,所以我不明白输入每个函数超过 80 个字符的限制是多么的 pythonic:
from generic_functions import (function1, function2, function3, function4, function5, function6, function7...)
执行上述操作会很乏味,尤其是当我需要在 generic_functions.py 中添加或删除数十个函数时
另一个选项是禁用 F405 警告,但如果该函数确实未定义怎么办?允许 star 导入同时仍然捕获任何未定义的东西会很好。有没有办法做到这一点?我尝试将 # noqa 添加到导入行,但它似乎没有帮助。
最佳答案
您可以执行以下操作:
- 将您的导入保留为
from generic_functions import *
- 运行 flake8 作为
flake8 --ignore=F405 file.py
.真不知道为什么# noqa
不起作用,但是--ignore
- 使用 pylint 测试其余可能的错误。 Pylint 能够确定
<function>
从generic_functions
定义和导入.
关于python - 使 flake8 区分未定义函数和星形导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56265620/