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
>>>一个
回溯(最近调用最后):
文件“/redacted/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py”,第 3035 行,在 run_code
exec(code_obj, self.user_global_ns, self.user_ns)
文件“< 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 或 Evaluate Expression
- 创建函数并插入断点在 声明变量之后
- 调出“评估表达式”对话框并重新分配
a
。注意区别
- 关闭并恢复程序并注意控制台中的输出
这是关于 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
>>>一个
回溯(最近调用最后):
文件“/redacted/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py”,第 3035 行,在 run_code exec(code_obj, self.user_global_ns, self.user_ns)
文件“< 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 或 Evaluate Expression
- 创建函数并插入断点在 声明变量之后
- 调出“评估表达式”对话框并重新分配
a
。注意区别 - 关闭并恢复程序并注意控制台中的输出