使用 Python 代码时,遇到来自警告库的警告可能会令人沮丧,特别是如果它们与当前任务无关。这就提出了如何在不修改大量代码的情况下有效禁用这些警告的问题。
对于孤立的情况,Python 文档建议使用 catch_warnings 上下文管理器。这允许您抑制特定代码块内的警告:
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn() # Python 3.11 and above: with warnings.catch_warnings(action="ignore"): fxn()
虽然这种方法有效地抑制了特定函数的警告,但在处理大量警告时可能不实用。要全局禁用警告,您可以使用 warnings.filterwarnings 函数和“忽略”操作:
import warnings warnings.filterwarnings("ignore") # Ex: import warnings def f(): print('before') warnings.warn('you are warned!') print('after') f() # Prints warning warnings.filterwarnings("ignore") f() # No warning printed
此方法会在代码执行期间抑制所有警告。然而,需要注意的是,虽然忽略警告可以使代码执行更高效,但它也可能掩盖需要注意的潜在问题。因此,通常建议使用 catch_warnings 上下文管理器进行选择性警告抑制,而不是全局抑制。
以上是如何在不进行大量代码更改的情况下有效禁用 Python 警告?的详细内容。更多信息请关注PHP中文网其他相关文章!