首頁 >後端開發 >Python教學 >如何有效消除Python警告?

如何有效消除Python警告?

Barbara Streisand
Barbara Streisand原創
2024-12-07 10:31:11421瀏覽

How Can I Silence Python Warnings Effectively?

消除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()

全局警告抑制

全局警告抑制
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函數提供了一個快速但骯髒的解決方案。只需將操作設為“忽略”即可立即使警告合唱團靜音。

>>> warnings.filterwarnings("ignore")
>>> f()
before
after
之前:

之後:

建議建議建議對大多數場景,我們對於大多數場景建議使用有針對性的方法catch_warnings 忽略特定警告,同時保持捕捉基本警告的能力。這可確保您不會根據不相關的警告來排除問題。但是,如果您確定要抑制所有警告,則 warnings.filterwarnings 方法可以提供全域解決方案。

以上是如何有效消除Python警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn