【问题标题】:How to terminate code upon RuntimeWarning如何在 RuntimeWarning 时终止代码
【发布时间】:2022-01-04 08:41:09
【问题描述】:

我正在使用 scipy.optimize.fsolve 来求解两个非线性方程。当不能满足边界条件时,我想编程终止并打印警告消息。我已经设置了最大迭代次数,使得maxfev = 20

sol = fsolve(f, [1e-6,1e-6], xtol=1e-6, maxfev=20, full_output=False, col_deriv=True)

当我收到以下 RuntimeWarning 时如何终止程序?

RuntimeWarning:函数调用次数已达到 maxfev = 20。

【问题讨论】:

    标签: optimization scipy


    【解决方案1】:

    例如,您可以使用warnings.simplefilter

    这里是一个不以DeprecationWarning 结尾,而是以RuntimeWarning 结尾的示例

    def fn():
        warnings.warn('deprecation', DeprecationWarning)
        print('running after deprecation warning')
        warnings.warn('runtime', RuntimeWarning)
        print('running after runtime warning')
    fn() # ends normally
    
    warnings.simplefilter('error', RuntimeWarning)
    fn() # raises an error on RuntimeWarning
    

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2015-09-24
      • 2017-12-09
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      相关资源
      最近更新 更多