有时,看似未使用的 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”的方法来实现这一点?