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

Python Pycharm:在交互式调试控制台中覆盖函数变量,python,pycharm,Python,Pycharm,这是关于Pycharm 4.5.1的 无论何时在函数中的断点处停止,我都无法覆盖或创建在交互式python控制台中的函数中定义的任何变量,无论这些函数变量是在断点之前还是之后定义的 相反,当调试点不在函数中时,我可以覆盖当前脚本中定义的任何变量。这是一个bug还是预期的行为?无论如何,它让我发疯,因为它使任何交互式断点几乎不可能 我的问题是:有没有办法在Pycharm中避免这种恼人的行为 最少的例子 >>>指我到达指定断点后在交互式调试控制台上的输入 这项工作: >>>a=4 >>>a Out[

这是关于Pycharm 4.5.1的

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

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

我的问题是:有没有办法在Pycharm中避免这种恼人的行为

最少的例子

>>>指我到达指定断点后在交互式调试控制台上的输入

这项工作:

>>>a=4

>>>a

Out[7]:4

这项工作:

>>>b=4

>>>b

Out[7]:4

这不起作用:

>>>a=4

>>>a

回溯最近一次呼叫上次:

文件/redact/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py,第3035行,运行代码 execcode_obj,self.user_全局,self.user

文件,第1行,在

a

NameError:未定义名称“a”

这不起作用:

>>>a=4

>>>a


Out[7]:3执行Alt+F8或

创建函数并在声明变量后插入断点 打开“计算表达式”对话框并重新指定一个表达式。注意区别 关闭并恢复程序,并注意控制台中的输出
谢谢,那将是一种工作方式!但这样做还是有点麻烦。如果可以在所谓的交互式控制台中重新分配变量,那就容易多了。我个人不喜欢他们的整体调试设置。是的,我也不喜欢。您是否知道有任何IDE具有类似的功能*,但更好,可能是类似Matlab的调试功能?*我知道,这是非常模糊的,但与Pycharm类似级别的代码内省将是一个开始。我刚刚遇到了快速求值表达式选项Ctrl+Alt+8,它可以避免打开单独的对话框窗口。它通过在控制台或编辑器中选择当前命令并按Ctrl+Alt+8来工作。远非理想,但至少可行->公认的答案。
a = 3  # <- put breakpoint here
def test():
    a = 3  # <- put breakpoint here
test()
def test():    
    a = 3  # <- put breakpoint here
test()
def test():
    a = 3
    print('just for the sake of placing a breakpoint')  # <- put breakpoint here
test()