消除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中文網其他相關文章!