当我在Pycharm中调试我的Python代码时,我经常想要更改原始代码设置的一些变量。
我可以通过Debugger选项卡执行此操作,单击相应的变量并使用Set Value函数进行更改。这种感觉太多了,我宁愿通过控制台界面来做。但是当我尝试这个时,它并没有更新变量:
>>> filename
Out[6]: 'a'
>>> filename='b'
>>> filename
Out[8]: 'a'
有没有办法通过控制台界面更改这些类型的变量?
答案 0 :(得分:7)
你可以完全做到这一点。在断点处停止时:
注意:如果您关闭按钮并且程序结束时,交互式控制台回显命令(图像中带有>>>>的行)会消失,这有点奇怪。我经常想要复制我输入的命令。
答案 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)”窗口,然后在窗口中为其分配新值