如何解决在python中将常数替换为None时的奇怪运行结果
我正在尝试将python中的None值替换为常数,但是结果不正确。
原始代码:
@numba.jit
def check_termination(dF,F,dx_norm,x_norm,ratio,ftol,xtol):
"""Check termination condition for nonlinear least squares."""
ftol_satisfied = dF < ftol * F and ratio > 0.25
xtol_satisfied = dx_norm < xtol * (xtol + x_norm)
if ftol_satisfied and xtol_satisfied:
return 4
elif ftol_satisfied:
return 2
elif xtol_satisfied:
return 3
else:
return None
#return -999
调用子程序的主要功能:
termination_status = check_termination(
actual_reduction,cost,step_norm,array_norm(x_normalize,num_x),xtol)
print(termination_status)
if termination_status is not None:
#if termination_status!=-999:
break
上面的代码可以正常工作,但是如果将返回值替换为-999而不是None,并且在主函数中使用!=-999,则结果是不正确的。
有人可以帮助解释这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。