17

PDB(和其他 Python 调试器)有一种查看任何当前变量值的简单方法,只需输入即可。但是,有时我使用的库不会将其返回值存储在中间变量中。

这是一个示例函数:

def do_stuff(*args, **kwds):
     return f(*args, **kwds)

从f返回后,如何查看返回值?我可以在下载库后重写库以获得中间体:

def do_stuff(*args, **kwds):
     r = f(*args, **kwds)
     return r

但似乎应该有更好的方法。

4

3 回答 3

21

您可以查看隐藏的__return__局部变量。

如果我忘记了它的确切名称,我会通过以下方式进行探索:

(Pdb) sorted(locals().keys())
['__return__', 'xyz', ...]

编辑:稍后的答案与调试示例相关__return__

于 2013-09-07T13:59:38.793 回答
6

在 pdb 中,当函数返回时->'value',将在行尾添加返回值的表示形式。

例如:

(Pdb) s
--Return--
> test.py(12)do_stuff()->'f'
-> return result
(Pdb) q

意味着do_stuff()退回'f'

于 2012-06-05T18:15:26.703 回答
1

你能解释更多吗?

  • 通过调试器,您的意思是您正在使用记录器吗?您是否正在逐步使用 IDE?
  • “查看返回值”是什么意思?如果你只是想打印它...

    def do_stuff(*args, **kwds):
        result = f(*args, **kwds)
        print result
        return result
    
于 2012-06-05T17:52:40.123 回答