模块自身导入¶
ID: py/import-own-module
Kind: problem
Security severity:
Severity: recommendation
Precision: very-high
Tags:
- maintainability
- useless-code
Query suites:
- python-security-and-quality.qls
模块不需要自身导入。模块自身导入可能会导致错误,因为模块在被自身导入时可能处于不完整状态。
建议¶
删除导入语句。将所有形式为 mod.name
的表达式(其中 "mod" 是当前模块的名称)转换为 name
。
示例¶
在此示例中,模块 ModuleImportsItself
自身导入,并包含一个引用其所在模块的表达式。
import ModuleImportsItself
def factorial(n):
if n <= 0:
return 1
return n * ModuleImportsItself.factorial(n - 1)
可以删除导入并更正引用。
def factorial(n):
if n <= 0:
return 1
return n * factorial(n - 1)
参考资料¶
Python: Modules.