循环导入¶
ID: py/cyclic-import
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- reliability
- maintainability
- modularity
Query suites:
- python-security-and-quality.qls
循环导入是一个 import
,它导入另一个模块,而该模块又(可能间接地)导入包含 import
语句的模块。
循环导入表明两个模块之间存在循环依赖关系。这意味着这些模块无法独立测试,并且会使理解系统的架构变得更加困难。
建议¶
可以通过删除任何一个导入来打破循环。如果只有一个函数或方法需要导入,则考虑将其移到另一个模块中并删除导入。如果两个模块的联系更加紧密,则将相互依赖的部分移到第三个模块中,让两个原始模块都导入该模块。