使flke8区分未定义的函数和星形导入

2022-03-31 00:00:00 python pep8 python-import flake8

问题描述

我有一个相当大的项目,我试图在发布之前清理掉,但当我运行flke8时,我收到了大量

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

我可以通过替换以下行来避免此问题:

from generic_functions import *

在我的文件开头,但是:

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

     from generic_functions import (function1, function2, function3, function4, function5, function6, function7...)
    
  2. 执行上述操作将非常繁琐,尤其是当我需要在Generic_unctions.py

  3. 中添加或删除数十个函数时
另一种选择是禁用F405警告,但如果该函数确实未定义怎么办?如果在允许明星导入的同时仍能捕捉到任何未定义的内容,那就太好了。有什么办法可以做到这一点吗?我尝试将#noqa添加到导入行,但似乎无济于事。


解决方案

您可以执行以下操作:

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

相关文章