CodeQL 文档

循环导入

ID: py/cyclic-import
Kind: problem
Security severity: 
Severity: recommendation
Precision: high
Tags:
   - reliability
   - maintainability
   - modularity
Query suites:
   - python-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

循环导入是一个 import,它导入另一个模块,而该模块又(可能间接地)导入包含 import 语句的模块。

循环导入表明两个模块之间存在循环依赖关系。这意味着这些模块无法独立测试,并且会使理解系统的架构变得更加困难。

建议

可以通过删除任何一个导入来打破循环。如果只有一个函数或方法需要导入,则考虑将其移到另一个模块中并删除导入。如果两个模块的联系更加紧密,则将相互依赖的部分移到第三个模块中,让两个原始模块都导入该模块。

参考文献

  • ©GitHub, Inc.
  • 条款
  • 隐私