scipy.special.

errstate#

class scipy.special.errstate(**kwargs)#

特殊函数错误处理的上下文管理器。

使用 errstate 实例作为上下文管理器,允许在该上下文中的语句以已知的错误处理行为执行。进入上下文时,错误处理行为通过 seterr 设置,退出时则恢复到之前的状态。

参数:
kwargs{all, singular, underflow, overflow, slow, loss, no_result, domain, arg, other}

关键字参数。有效的关键字是可能的特殊函数错误。每个关键字应具有一个字符串值,用于定义特定类型错误的处理方式。值必须是 'ignore'(忽略)、'warn'(警告)或 'other'(其他)。详情请参见 seterr

另请参阅

geterr

获取当前特殊函数错误处理方式

seterr

设置特殊函数错误处理方式

numpy.errstate

用于浮点错误处理的类似 NumPy 函数

示例

>>> import scipy.special as sc
>>> from pytest import raises
>>> sc.gammaln(0)
inf
>>> with sc.errstate(singular='raise'):
...     with raises(sc.SpecialFunctionError):
...         sc.gammaln(0)
...
>>> sc.gammaln(0)
inf

我们也可以对除一种类别外的所有类别都触发错误。

>>> with sc.errstate(all='raise', singular='ignore'):
...     sc.gammaln(0)
...     with raises(sc.SpecialFunctionError):
...         sc.spence(-1)
...
inf