PDB(和其他Python调试器)有一种简单的方法来查看任何当前变量的值,只需输入它.但是,有时我使用的库不会将它们的返回值存储在中间变量中.
这是一个示例函数:
def do_stuff(*args, **kwds):
return f(*args, **kwds)
Run Code Online (Sandbox Code Playgroud)
从f返回后,如何查看返回值?我下载它们后可以重写库以获得中间件:
def do_stuff(*args, **kwds):
r = f(*args, **kwds)
return r
Run Code Online (Sandbox Code Playgroud)
但似乎应该有更好的方法.
hyn*_*cer 18
您可以查看隐藏的__return__
局部变量.
如果我忘记它的确切名称,我会通过以下方式探索它:
(Pdb) sorted(locals().keys())
['__return__', 'xyz', ...]
Run Code Online (Sandbox Code Playgroud)
编辑:我的相关后面的回答与__return__的例子
在pdb中,当函数返回a时->'value'
,将在该行的末尾添加返回值的表示形式。
例如:
(Pdb) s
--Return--
> test.py(12)do_stuff()->'f'
-> return result
(Pdb) q
Run Code Online (Sandbox Code Playgroud)
意味着do_stuff()
返回'f'