消除Python警告的合唱
你想告别Python代码中源源不断的警告吗?当使用生成过多警告的遗留代码或模块时,这可能特别麻烦。虽然手动禁用单个函数的警告可能是一种选择,但还有更优雅的解决方案可用。
暂时抑制警告
Python 的警告模块提供了一种巧妙的方法来暂时静音警告。通过利用 catch_warnings 上下文管理器,可以在特定代码块期间忽略特定警告类别。就像将代码包装在 with ... 语句中一样简单。
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn()
或者,对于 Python 版本 3.11 及更高版本,可以使用更简洁的语法:
with warnings.catch_warnings(action="ignore"): fxn()
全局警告抑制
如果你感觉有点叛逆,宁愿关闭一次删除所有警告, warnings.filterwarnings 函数提供了一个快速但肮脏的解决方案。只需将操作设置为“忽略”即可立即使警告合唱团静音。
import warnings warnings.filterwarnings("ignore") def f(): print('before') warnings.warn('you are warned!') print('after') f()
之前:
>>> f() before <stdin>:3: UserWarning: you are warned! after
之后:
>>> warnings.filterwarnings("ignore") >>> f() before after
建议
对于大多数场景,我们建议使用有针对性的方法catch_warnings 忽略特定警告,同时保持捕获基本警告的能力。这可确保您不会根据不相关的警告来排除问题。但是,如果您确定要抑制所有警告,则 warnings.filterwarnings 方法可以提供全局解决方案。
以上是如何有效地消除Python警告?的详细内容。更多信息请关注PHP中文网其他相关文章!