Pylint 对集中导入发出警告
Pylint gives warnings for centralised imports
在一个 python 项目中,我想将 globber 导入到一个名为 common_imports.py
的文件中,以减少 python 文件中导入语句的数量。
而不是写
file1.py
import foo
import bar
import baz
[...]
file2.py
import foo
import bar
import baz
[...]
我要写
file1.py
from common_imports import *
[...]
file2.py
from common_imports import *
[...]
common_imports.py
import foo
import bar
import baz
然而,这给了我很多 pylint 误报。
我可以通过添加 pylint 禁用注释来禁用 common_imports.py
文件中的 pylint 警告。我可以禁用通配符导入。不幸的是,我只能全局禁用未使用的导入,而不是特定于来自 common_imports.py
的所有导入。
有人知道如何在轨道上安装 pylint 吗?
将我上面的评论总结成一个正确的答案:
长话短说:
虽然可重用代码 motive 值得称赞,但不适合这里的用途。听 linter,在同事中保持 hard-earned 的尊重。 :-)
Pythonic观点:
不要
为什么? Python 约定,在其所有的组织荣耀和文档结构中,声明如果您在模块中使用库,将其导入模块。简单明了。
Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.
在较低级别,跟踪导入的 sys.modules
dict
只会导入尚未导入的库。所以从效率的角度来说,没有任何收获。
维护者的观点:
- 不要
- 为什么?如果(何时)在一个模块中更改/优化代码,从而减轻了对特定导入的需求……“提醒我在哪里查找该库的导入位置?哦,是的,在这里。但是这个另一个模块需要导入,但不是我用来优化此代码的这个新库。我应该在哪里导入它?呃!!!”
- 您已经失去了以下维护者的 hard-earned 尊重。
在一个 python 项目中,我想将 globber 导入到一个名为 common_imports.py
的文件中,以减少 python 文件中导入语句的数量。
而不是写
file1.py
import foo
import bar
import baz
[...]
file2.py
import foo
import bar
import baz
[...]
我要写
file1.py
from common_imports import *
[...]
file2.py
from common_imports import *
[...]
common_imports.py
import foo
import bar
import baz
然而,这给了我很多 pylint 误报。
我可以通过添加 pylint 禁用注释来禁用 common_imports.py
文件中的 pylint 警告。我可以禁用通配符导入。不幸的是,我只能全局禁用未使用的导入,而不是特定于来自 common_imports.py
的所有导入。
有人知道如何在轨道上安装 pylint 吗?
将我上面的评论总结成一个正确的答案:
长话短说:
虽然可重用代码 motive 值得称赞,但不适合这里的用途。听 linter,在同事中保持 hard-earned 的尊重。 :-)
Pythonic观点:
不要
为什么? Python 约定,在其所有的组织荣耀和文档结构中,声明如果您在模块中使用库,将其导入模块。简单明了。
Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.
在较低级别,跟踪导入的
sys.modules
dict
只会导入尚未导入的库。所以从效率的角度来说,没有任何收获。
维护者的观点:
- 不要
- 为什么?如果(何时)在一个模块中更改/优化代码,从而减轻了对特定导入的需求……“提醒我在哪里查找该库的导入位置?哦,是的,在这里。但是这个另一个模块需要导入,但不是我用来优化此代码的这个新库。我应该在哪里导入它?呃!!!”
- 您已经失去了以下维护者的 hard-earned 尊重。