(Pdb) ... # stop somewhere in the debugger ...
> test.py(3)f()
-> return x + 1
(Pdb) l # list source: I'm just before return
1 def f():
2 x = 7
3 -> return x + 1
(Pdb) '__return__' in locals() # __return__ is still undefined
False
(Pdb) s
Return
> test.py(3)f()->8 # This printed 8 is a simple case, but frequently
(Pdb) '__return__' in locals() # the value is an object or line shortened to 80 ch.
True # __return__ has the value after return
(Pdb) __return__
8
当pdb调试器在计算return命令后停止时,它是函数调用的返回值。对于有任何副作用的返回表达式来说,Is是非常重要的(它不能像从管道中读取一行一样被复制)。在
如果函数退出时没有执行return命令,那么每次都是
__return__ == None
。在__return__
关键字仅出现在调试器代码中:它是一个通用的或花园式的本地名称,可能是函数或值的名称,从它的名称在
locals()
中就可以看出。您需要查看定义它的代码,以了解它的用途。它以双下划线开头这一事实表明它是某种特殊值;也许它用于保存某些函数的返回值。但是,Python本身并没有赋予名称__return__
任何特殊的含义,因此它可以是任何名称。在知道你在哪里找到它会是个好的开始。。。在
相关问题 更多 >
编程相关推荐