no-explicit-stacklevel (B028)
源自 flake8-bugbear linter。
修复总是可用的。
作用
检查没有显式 stacklevel
关键字参数的 warnings.warn
调用。
为什么这不好?
warnings.warn
方法默认使用 stacklevel
为 1,这将输出调用 "warn" 方法的行上的堆栈帧。将其设置为更高的数字将输出堆栈中更高的堆栈帧。
建议使用 stacklevel
为 2 或更高的值,以便为调用者提供有关警告的更多上下文。
示例
建议改为
修复安全性
此规则的修复被标记为不安全,因为它会改变代码的行为。此外,修复程序将分配 stacklevel 为 2,而用户可能希望分配更高的 stacklevel 以解决诊断问题。