import-outside-top-level (PLC0415)
源自 Pylint 代码检查工具。
作用
检查 import
语句是否在模块的顶层作用域之外,例如在函数或类定义中。
为什么这不好?
PEP 8 建议不仅将导入语句放在模块的顶层,而且放在文件的最顶部,“紧随任何模块注释和文档字符串之后,在模块全局变量和常量之前。”
import
语句具有全局范围的影响;在顶层定义它们有很多好处。例如,它可以更容易地识别模块的依赖项,并确保无论是否调用特定函数或实例化类,都会捕获任何无效的导入。
通常只有为了避免循环依赖、推迟代价高昂的模块加载,或者完全避免在特定运行时环境中加载依赖项,才会将导入语句放在函数中。
示例
建议改为
另请参阅
如果启用了规则 banned-module-level-imports
,则此规则将忽略在 lint.flake8-tidy-imports.banned-module-level-imports
中配置的导入语句。