Pycharm:在交互式调试控制台中覆盖函数变量

时间:2015-10-12 10:35:52

标签: python pycharm

这是关于Pycharm 4.5.1。

每当我停在函数中的断点时,我都无法覆盖或创建交互式python控制台中函数中定义的任何变量(无论这些函数变量是在断点之前还是之后定义的) 。

相比之下,当我的调试点不在函数内时,我可以覆盖当前脚本中定义的任何变量。这是一个错误或预期的行为?无论如何,它让我发疯,因为它使任何交互式断点引导的开发几乎不可能。

我的问题:有没有办法在Pycharm中解决这个烦人的行为?

MINIMAL EXAMPLES

>>>一旦我到达指示的断点,就会在交互式调试控制台上输入我的输入。

这有效:

a = 3  # <- put breakpoint here

&GT;&GT;&GT; a = 4

&GT;&GT;&GT;一个

Out [7]:4

这有效:

def test():
    a = 3  # <- put breakpoint here
test()

&GT;&GT;&GT; b = 4

&GT;&GT;&GT; B'/ P>

Out [7]:4

这不起作用:

def test():    
    a = 3  # <- put breakpoint here
test()

&GT;&GT;&GT; a = 4

&GT;&GT;&GT;一个

追踪(最近一次呼叫最后一次):

文件&#34; /redacted/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py",第3035行,在run_code中     exec(code_obj,self.user_global_ns,self.user_ns)

档案&#34;&lt; ipython-input-5-5cd59f58ac08&gt;&#34;,第1行,&lt;模块&GT;

NameError:name&#39; a&#39;未定义

这不起作用:

def test():
    a = 3
    print('just for the sake of placing a breakpoint')  # <- put breakpoint here
test()

&GT;&GT;&GT; a = 4

&GT;&GT;&GT;一个

Out [7]:3

1 个答案:

答案 0 :(得分:0)

我所做的是从调试器执行 Alt + F8 Evaluate Expression

  1. 创建您的函数并在声明变量后插入断点 enter image description here
  2. 打开“评估表达式”对话框并重新分配a。注意区别 enter image description here
  3. 关闭并恢复程序并注意控制台中的输出 enter image description here