我发现这可以打破异常。
然而,我想要的是打破警告。这是我得到的警告,如果报告此警告或其他警告在此时断开,则会发出警告。
RuntimeWarning: invalid value encountered in double_scalars yv = Nv(v, U*r)/Nv(v, U*r_)
提前致谢。
答案 0 :(得分:1)
与一个与多个流控制机制相关联的异常不同,警告只是输出到控制台的文本 - 更确切地说,是stderr
:
打破警告的可能方法是拦截对stderr
的调用:
class MyStderr(object):
def __init__(self, original_stderr):
self.original_stderr= original_stderr
def my_break(self):
import pdb; pdb.set_trace()
def write(self,*args, **kwargs):
self.my_break()
#...
def writelines(self,*args, **kwargs):
self.my_break()
#...
#...
import sys
sys.stderr= MyStderr(sys.stderr)
这应该启动交互式pdb
调试器。