7

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

我特别在像 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”的方法来实现这一点?

4

1 回答 1

9

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

皮林特:

import X  # pylint: disable=unused-import

Pyflakes:

import X  # NOQA

PyCharm:

# noinspection PyUnresolvedReferences
import X
于 2019-08-23T16:21:04.493 回答