Pycharm 3调试中的代码片段模式总是返回None

时间:2013-11-21 07:23:20

标签: debugging pycharm

在Pycharm中处于调试模式时,Evaluate Expression -> Code Fragment工具似乎无法一次性分配和显示变量。唯一似乎正确评估的情况是第一行是一个常数值。

例如

10

中的预期结果

result = {int} 10

但是在尝试获得相同的结果时:

c = 10
c

输出

result = {NoneType} None

但是,如果我将鼠标悬停在片段窗口中的每个变量上,则值将显示为弹出窗口。

1 个答案:

答案 0 :(得分:9)

编辑总结评论(感谢Vaibhav Mishra):

不幸的是,这似乎是默认行为:(won't fix bug

我对此功能的理解:

虽然Pycharm在评估多行时会显示None result,但它们在当前所选堆栈帧的上下文中全部执行。其中一个后果是更新命名空间。随后在相同的上下文(或鼠标悬停)中使用单行评估将显示预期值。

两种潜在的用法:

  1. 从编辑器评估多行时,会自动提示Evaluate Code Fragment对话框:Select a block | Evaluate Expression (Alt+F8)。可能有助于调整几行并一次运行评估。
  2. 作为Debug Command Line的替代,代码片段模式支持循环和if / else。虽然检查看起来有些醉意(错误的未解决的变量),但可以忽略它,并且可以很好地利用那里提供的编辑帮助。