显式导出未定义¶
ID: py/undefined-export
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- reliability
- maintainability
Query suites:
- python-security-and-quality.qls
当使用 import *
导入模块时,将导入 __all__
中列出的所有属性。如果 __all__
包含未在模块中定义的属性,则会触发异常。这通常表示 __all__
中的属性名称或对象的名称存在错别字。
建议¶
更正所有错别字,无论是在对象名称中还是在 __all__
中的字符串中。如果不存在错别字,则从 __all__
中删除该名称或将该对象添加到模块中。
示例¶
在示例中,函数名 spam
在 __all__
列表中拼写错误。这将导致 spamm
被突出显示为未定义的导出。更正拼写将修复缺陷。
__all__ = ['spamm', 'troll', 'paywall']
def spam(): return 'Spam'
def troll(): return 'Troll'
def paywall(): return 'Pay wall'