2013-11-21 47 views
9

在Pycharm中的调试模式下,Evaluate Expression -> Code Fragment工具似乎无法一次性分配和显示变量。似乎正确评估的唯一情况是第一行是一个常数值。Pycharm 3调试中的代码片段模式返回None始终为

例如。

10 

结果预计将在

result = {int} 10 

而是试图获得同样的结果时:

c = 10 
c 

输出

result = {NoneType} None 

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

+0

你能给我们一些示例代码来尝试吗? –

+0

例如上面是示例代码, c = 10 c –

+0

然后,我害怕我根本不明白你的问题,因为我不能重现它。 –

回答

8

编辑总结的意见(感谢Vaibhav的米什拉):

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

我的这个功能的理解:

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

两个潜在用途:评估从编辑多条线路时

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

然而,错误是一个不会修复,显然这是预期的行为,谢谢澄清 –

+1

该评论还提到'调试命令行',这似乎是一个很好的方式来让你的例子工作。 –

+0

任何人都可以在“代码片段模式”中显示如何使用“评估表达式”的例子吗? –