本文簡要介紹 python 語言中 numpy.testing.suppress_warnings
的用法。
用法:
class numpy.testing.suppress_warnings(forwarding_rule='always')
上下文管理器和裝飾器的作用與
warnings.catch_warnings
大致相同。但是,它還提供了一種過濾機製來解決 https://bugs.python.org/issue4180 問題。
此錯誤導致 3.4 之前的 Python 在被忽略一次後無法可靠地再次顯示警告(即使在 catch_warnings 內)。這意味著不能輕鬆使用 “ignore” 過濾器,因為以下測試可能需要查看警告。此外,它允許更輕鬆地測試警告的特異性,並且可以嵌套。
- forwarding_rule: str,可選
“always”, “once”, “module” 或 “location” 之一。類似於通常的警告模塊過濾器模式,主要在最外層減少噪音很有用。將根據此規則轉發未抑製和未記錄的警告。默認為“always”。 “location” 等價於警告 “default”,與警告警告的確切位置相匹配。
參數:
注意:
在上下文管理器中添加的過濾器將在離開時再次被丟棄。輸入在上下文之外定義的所有過濾器後,將自動應用。
添加記錄過濾器後,匹配的警告將存儲在
log
屬性以及record
返回的列表中。如果添加了過濾器並給出了
module
關鍵字,則在應用它、進入上下文或退出它時,將額外清除該模塊的警告注冊表。如果將警告配置為打印一次(默認)並且在進入上下文之前已經打印,這可能會導致在離開上下文後再次出現警告。當轉發規則為“always”(默認)時,嵌套此上下文管理器將按預期工作。未過濾和未記錄的警告將被傳遞出去並由外部級別匹配。在最外層,它們將被打印(或被另一個警告上下文捕獲)。轉發規則參數可以修改此行為。
像
catch_warnings
這個上下文管理器不是線程安全的。例子:
使用上下文管理器:
with np.testing.suppress_warnings() as sup: sup.filter(DeprecationWarning, "Some text") sup.filter(module=np.ma.core) log = sup.record(FutureWarning, "Does this occur?") command_giving_warnings() # The FutureWarning was given once, the filtered warnings were # ignored. All other warnings abide outside settings (may be # printed/error) assert_(len(log) == 1) assert_(len(sup.log) == 1) # also stored in log attribute
或者作為裝飾者:
sup = np.testing.suppress_warnings() sup.filter(module=np.ma.core) # module must match exactly @sup def some_function(): # do something which causes a warning in np.ma.core pass
相關用法
- Python numpy testing.rundocs用法及代碼示例
- Python numpy testing.assert_warns用法及代碼示例
- Python numpy testing.assert_array_almost_equal_nulp用法及代碼示例
- Python numpy testing.assert_array_less用法及代碼示例
- Python numpy testing.assert_raises用法及代碼示例
- Python numpy testing.assert_almost_equal用法及代碼示例
- Python numpy testing.assert_approx_equal用法及代碼示例
- Python numpy testing.assert_allclose用法及代碼示例
- Python numpy testing.decorators.slow用法及代碼示例
- Python numpy testing.assert_string_equal用法及代碼示例
- Python numpy testing.run_module_suite用法及代碼示例
- Python numpy testing.assert_array_max_ulp用法及代碼示例
- Python numpy testing.assert_equal用法及代碼示例
- Python numpy testing.assert_array_equal用法及代碼示例
- Python numpy testing.assert_array_almost_equal用法及代碼示例
- Python numpy testing.decorators.setastest用法及代碼示例
- Python numpy tensordot用法及代碼示例
- Python numpy trim_zeros用法及代碼示例
- Python numpy trace用法及代碼示例
- Python numpy tri用法及代碼示例
- Python numpy true_divide用法及代碼示例
- Python numpy transpose用法及代碼示例
- Python numpy tile用法及代碼示例
- Python numpy tanh用法及代碼示例
- Python numpy trapz用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.testing.suppress_warnings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。