跳到内容

禁止模块级导入 (TID253)

派生自 flake8-tidy-imports linter。

作用

检查应延迟导入的模块级导入(例如,在函数定义中,或在 if TYPE_CHECKING: 代码块中,或某些其他嵌套上下文中)。

为什么这不好?

某些模块的导入成本很高。例如,导入 torchtensorflow 可能会导致 Python 程序的启动时间出现明显的延迟。

在这种情况下,您可能希望强制模块根据需要进行延迟导入,而不是在文件顶部导入。这可能涉及将导入内联到使用它的函数中,而不是无条件地导入它,以确保仅在必要时才导入模块。

示例

import tensorflow as tf


def show_version():
    print(tf.__version__)

建议改为

def show_version():
    import tensorflow as tf

    print(tf.__version__)

Options (选项)