有时,看似未使用的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