未定义导出 (F822)
派生自 Pyflakes 代码检查器。
作用
检查 __all__
中未定义的名称。
为什么这不好?
在 Python 中,__all__
变量用于定义当模块以通配符导入时(例如,from foo import *
)导出的名称。 __all__
中的名称必须在模块中定义,但包含为字符串。
在 __all__
中包含未定义的名称很可能在运行时引发 NameError
,当导入模块时。
在 预览 中,即使这些名称隐式地指向包中的其他模块,此规则也会标记 __init__.py
文件中未定义的名称。依赖隐式导出的用户应通过 lint.per-file-ignores
在 __init__.py
文件中禁用此规则。
示例
建议改为