$ python code.py
> /home/javl/sandbox/so/debug/code.py(10)<module>()
9
---> 10 g1 = gen()
11
ipdb> n
> /home/javl/sandbox/so/debug/code.py(12)<module>()
11
---> 12 text = "aha" + "bebe"
13
ipdb> p list(g1)
[1, 2, 3, 4, 5]
ipdb> c
还有一个exec命令,通过在表达式前面加上!来调用,它强制调试器将表达式作为Python表达式。
ipdb> !list(g1)
[]
有关更多详细信息,请参见调试器中的help p、help pp和help exec。
ipdb> help exec
(!) statement
Execute the (one-line) statement in the context of
the current stack frame.
The exclamation point can be omitted unless the first word
of the statement resembles a debugger command.
To assign to a global variable you must always prefix the
command with a 'global' command, e.g.:
(Pdb) global list_options; list_options = ['-l']
只需在生成器上调用
list
。请注意,这会影响生成器,它不会返回任何其他项。
也不能直接调用IPython中的
list
,因为它与列出代码行的命令冲突。在此文件上测试:
运行时:
转义函数/变量/调试器名称冲突的通用方法
调试器命令
p
和pp
将print
和prettyprint
跟随它们的任何表达式。所以你可以使用它如下:
还有一个
exec
命令,通过在表达式前面加上!
来调用,它强制调试器将表达式作为Python表达式。有关更多详细信息,请参见调试器中的
help p
、help pp
和help exec
。相关问题 更多 >
编程相关推荐