调试方法返回无



我有一个大的旧python方法,其中大约包含二十个 return语句。

该方法不应返回None,但可以返回。它在简单的测试用例中可以重复。

到目前为止,我使用了一个调试器,并逐行逐步浏览代码以查找匹配的返回语句。

但是有一种更简单的方法吗?

该方法一旦返回无?

,是否有办法提高异常?

当然,我需要查看包含返回语句的行。

示例:

def big_method(arg1, some_var):
    #.... many returns
    if arg1:
        return some_var # <------
    #... many returns

assert not big_method(True, None) is None

上面是一个简单的代码段。结果:

Traceback (most recent call last):
  File "/home/modwork_vums_d/src/manyreturns.py", line 8, in <module>
    assert not big_method(True, None) is None
AssertionError

上面的追溯没有帮助,因为我想在 big_method()中看到行。在上面的示例中,我想看看我用<------标记了哪个。

我使用pycharm,但欢迎纯python或其他解决方案。

仅用于记录。有一个后续问题试图在Pycharm中启用此功能:Pycharm:调试:R(Eturn)继续执行,直到当前功能返回

pdb具有以下需要的 r(eturn)命令:

r(eturn) 继续执行直到当前功能返回。

示例:

> /Users/georgexsh/wasteland/tmp/app.py(6)<module>()
-> assert not big_method(True, None) is None
(Pdb) s
--Call--
> /Users/georgexsh/wasteland/tmp/app.py(1)big_method()
-> def big_method(arg1, some_var):
(Pdb) r
--Return--
> /Users/georgexsh/wasteland/tmp/app.py(3)big_method()->None
-> return some_var

请参阅PDB文档中的更多详细信息

最新更新