gpt4 book ai didi

python - 如何阻止 np.vectorize 打印我发现的错误

转载 作者:行者123 更新时间:2023-11-30 22:37:12 27 4
gpt4 key购买 nike

我最近从 Python 2 迁移到 Python 3,并遇到了一个我认为 Python 2 中不会发生的问题(但我不完全确定。)

以下代码打印出警告(但不会停止运行):

import numpy as np

@np.vectorize
def reciprocal(num):
try:
return 1/num
except ZeroDivisionError:
return 0

reciprocal(0)

#prints: RuntimeWarning: divide by zero encountered in long_scalars

即使我在函数中很好地处理了错误。

如何阻止打印/发生此警告?

最佳答案

虽然另一个解决方案中提供的 suppressWarning 装饰器可以工作,但它可能有点过于允许,因为它根本不报告警告。我认为,至少有时,最好通过将警告提升为错误,然后照此处理来使警告明确化。使用 warnings 模块可以轻松完成此操作:

import numpy as np
import warnings

warnings.filterwarnings('error')

@np.vectorize
def reciprocal(num):
try:
return 1/num
except ZeroDivisionError:
# Now we end up here.
return 0

reciprocal(0)

关于python - 如何阻止 np.vectorize 打印我发现的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43949723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com