是否有一種方法可以一次性重置所有加載函數的__warningregistry__
?Python - 再次顯示'once'警告(重置所有警告註冊表)
我想強制所有使用'once'過濾器過濾的警告再次顯示。我發現沒有辦法做到這一點,除了呼籲我已加載的每個功能(包括那些導入模塊的一部分)<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()
功能也很清楚所有警告登記處,而不僅僅是當前的名字空間。
這是否已經存在?也許我錯過了一些明顯的東西,或者錯誤地使用了模塊?
這裏是Python的bug跟蹤問題:http://bugs.python.org/issue21724 –