本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。