Python 中指示未使用的模块导入的惯用方式是有意的



有时,看似未使用的Python模块导入实际上对于程序的正常运行至关重要。看似未使用的导入会产生来自 PyFlakes 等工具的虚假消息,并可能引起过度热心的程序员的无端关注。例如,C++(自 C++ 11 年以来(有一种惯用方式用[[unused]]属性来表示这一点(自 C++ 17 年以来[[maybe_unused]](。

我特别在像Flask这样的Web框架的上下文中问这个问题,这种情况经常发生。例如,来自 Flask 应用程序的样板代码,这对于正确运行其功能至关重要:

from app import auth_routes, app, db
from app.resources import api

我通常通过以下方式处理这种情况

import X
assert X is not None # Explanatory comment

有没有一种方法可以更明确地表达意图和更"Pythonic"来实现这一点?

每个工具都有自己的错误抑制方式。例如:

皮林特:

import X  # pylint: disable=unused-import

皮片:

import X  # NOQA

PyCharm:

# noinspection PyUnresolvedReferences
import X

最新更新