繁体   English   中英

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

[英]Pycharm: Overwrite function variables in interactive debugging console

这是关于Pycharm 4.5.1。

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

相反,当调试点不在函数中时,我可以覆盖当前脚本中定义的所有变量。 那是错误还是预期的行为? 无论如何,这使我发疯,因为它几乎使以交互断点为指导的开发成为不可能。

我的问题:有什么方法可以解决Pycharm中这种令人讨厌的行为?

最小的例子

>>>在到达指示的断点后,请参考我在交互式调试控制台上的输入。

这有效:

a = 3  # <- put breakpoint here

>>> a = 4

>>>一个

出[7]:4

这有效:

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

>>> b = 4

>>> b

出[7]:4

这不起作用:

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

>>> a = 4

>>>一个

追溯(最近一次通话):

在run_code exec(code_obj,self.user_global_ns,self.user_ns)中的文件“ /redacted/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py”,第3035行

文件<< ipython-input-5-5cd59f58ac08>,<模块>中的第1行

一种

NameError:名称“ a”未定义

这不起作用:

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

>>> a = 4

>>>一个

出[7]:3

我要做的是从调试器执行Alt + F8评估表达式

  1. 创建函数并声明变量插入断点 在此处输入图片说明
  2. 调出计算表达式对话框,并重新分配a 注意区别 在此处输入图片说明
  3. 关闭并恢复程序,并注意控制台中的输出 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM