在Pycharm调试器中更改变量

Jan*_*lem 9 python pycharm

当我在Pycharm中调试我的Python代码时,我经常想要更改原始代码设置的一些变量.
我可以通过Debugger选项卡执行此操作,单击相应的变量并使用Set Value函数进行更改.这种感觉太多了,我宁愿通过控制台界面来做.但是当我尝试这个时,它不会更新变量:

>>> filename
Out[6]: 'a'
>>> filename='b'
>>> filename
Out[8]: 'a'
Run Code Online (Sandbox Code Playgroud)

有没有办法通过控制台界面更改这些类型的变量?

Mik*_*ike 8

使用魔术按钮

你完全可以做到这一点.在断点处停止时:

  1. 在调试器控制台选项卡中,单击一个 " 显示的Python提示符 "
  2. B处键入您的python代码以在显示的提示符处修改变量
  3. C的控制台窗格中查看结果

注意:如果关闭按钮并且程序结束时,交互式控制台回显命令(图像中带有>>> C的行)将消失,这有点奇怪.我经常想复制我输入的命令.


Wil*_*lly 6

上面的答案似乎像个错误,表明可以操纵已经存在的对象的状态,但是似乎不可能为变量本身分配新的值(或对象)。

请参阅以下代码段进行说明:

>>> var_obj.temp = 1
>>> var_obj
Out[2]: namespace(temp=1)
>>> var_obj.temp2 = 2
>>> var_obj.temp = 10
>>> var_obj
Out[5]: namespace(temp=10, temp2=2)
>>> var_simple = 10
>>> var_simple
Out[7]: 1
Run Code Online (Sandbox Code Playgroud)

该问题早在2013年就已报告给PyCharm问题跟踪器(请参阅链接)。人们报告说该问题自PyCharm 3起就存在,有人建议这可能是python问题,而不是PyCharm,但不清楚原因。

无论如何,这种行为是令人困惑的,并且至少在尝试调试时应予以考虑-直到问题得到解决。


Gam*_*iac 4

不幸的是,您无法通过调试会话中弹出的控制台来执行此操作。您只能通过调试选项卡进行更改,右键单击然后更改它。不幸的是,但事实就是如此。