![]() |
1
1
你有两个核心问题。首先是(打电话时
第一个问题几乎只在输入时发生
第二个问题本质上是根深蒂固的语言设计决策不可避免的交互作用。不幸的是,它不太可能消失。调试器中的列表理解只能在全局范围内工作,而不能在调试函数时工作。如果要在调试函数时生成列表,最简单的方法可能是使用
这是所有影响的综合。
这个
trace function
pdb和其他python调试器使用的机制仅在某些特定事件上触发,“当设置跟踪函数”不幸不是这些事件之一。通常,下一个事件是
python用来显示表达式语句结果的机制是
伊普顿取代
PDB开始调试 在ipython的displayhook里面 .
人们不喜欢列表理解是如何将循环变量泄漏到python 2的包含范围中的,因此列表理解在python 3中获得了自己的范围。
python的闭包变量机制依赖于静态范围分析,这与
总之,在ipython中,最终调试的是ipython displayhook,而不是运行交互代码的作用域。既然你在ipython的displayhook里,
在伊普顿城外,
如果你想逃跑你也会看到同样的效果
|
![]() |
Wang Xiaojie · 如何从python调试器pdb输入 7 年前 |
|
Richard · 同一变量“args”的两个不同值 9 年前 |
|
Butter · 如何在没有Nvidia DLL的情况下调试OpenCV程序? 10 年前 |
![]() |
nonagon · python pdb自动漂亮打印 10 年前 |