[英]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或评估表达式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.