在Pycharm调试器中更改变量

时间:2015-04-17 09:21:07

标签: python pycharm

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

>>> filename
Out[6]: 'a'
>>> filename='b'
>>> filename
Out[8]: 'a'

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

4 个答案:

答案 0 :(得分:7)

Use the magic button

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

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

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

答案 1 :(得分:3)

不幸的是,您无法通过可在调试会话中弹出的控制台执行此操作。您只能通过调试选项卡更改内容,右键单击然后更改它。不幸的是,但就是这样。

答案 2 :(得分:2)

这似乎是一个错误,上面的答案表明可以操纵现有对象的状态,但是似乎无法为变量本身分配新的值(或对象)。

请参阅以下代码段以获得澄清:

>>> 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

2013年已经向PyCharm问题跟踪器报告了该问题(see the link)。 人们报告说问题出现在PyCharm 3之后,有些人认为它可能是一个python问题,而不是PyCharm,但不明白为什么。

无论如何,这种行为令人困惑,至少应该在尝试调试时加以考虑 - 直到它被修复。

答案 3 :(得分:0)

出于让我无所适从的原因,显而易见的“更改值/ F2)允许您插入值,但不会将其持久化为

上的基础变量/属性

但是...您可以在突出显示变量或属性的同时打开“评估表达式(Alt-f8)”窗口,然后在窗口中为其分配新值