有没有办法__warningregistry__
一次重置所有加载的功能?
我想强制使用“一次”过滤器过滤的所有警告再次显示。除了调用<func>.__globals__['__warningregistry__'].clear()
我已加载的每个函数(包括那些属于导入模块的函数)之外,我发现没有其他方法可以做到这一点。
所以,我想要的是像一个warnings.clear()
函数来执行以下操作:
>>> import warnings
>>> warnings.warn('blah')
WARNING:root:blah ->UserWarning at ...
>>> warnings.warn('blah')
>>> warnings.clear()
>>> warnings.warn('blah')
WARNING:root:blah ->UserWarning at ...
我希望这个warnings.clear()
函数也清除所有警告注册表,而不仅仅是当前的命名空间。
这已经存在了吗?也许我遗漏了一些明显的东西,或者错误地使用了模块?