提问人:Patrick 提问时间:2/26/2021 最后编辑:Patrick 更新时间:3/4/2021 访问量:239
Python:为什么临时抑制后会打印两次警告?
Python: why is warning printed twice following temporary suppression?
问:
似乎暂时禁止显示警告会使上下文管理器之外的重复警告重复显示。
例:
import warnings
def f():
with warnings.catch_warnings():
warnings.simplefilter("ignore", category=Warning)
print("A")
print("B")
warnings.warn("My warning")
f()
f()
输出:
A
B
tmp2.py:10: UserWarning: My warning
warnings.warn("My warning")
A
B
tmp2.py:10: UserWarning: My warning
warnings.warn("My warning")
此外,我给什么动作和类别似乎并不重要。simplefilter
另一方面,如果我注释掉上下文块,
则警告仅显示一次(按预期)。catch_warnings
为什么?这是一个错误吗?我错过了什么?
评论