runtime-import-in-type-checking-block (TC004)(类型检查块中的运行时导入)
源自 flake8-type-checking 代码检查器。
有时提供修复。
作用
检查运行时需要但仅在类型检查块中定义的导入。
为什么这不好?
类型检查块不会在运行时执行,因此如果符号的唯一定义在类型检查块中,则它在运行时将不可用。
如果 lint.flake8-type-checking.quote-annotations
设置为 true
,则如果这样做可以使相应的导入保留在类型检查块中,则注释将被引号括起来。
示例
from typing import TYPE_CHECKING
if TYPE_CHECKING:
import foo
def bar() -> None:
foo.bar() # raises NameError: name 'foo' is not defined
建议改为