当我在Pycharm中调试我的Python代码时,我经常想更改一些由原始代码设置的变量。
我可以通过“调试器”选项卡执行此操作,单击相应的变量并使用“设置值”功能对其进行更改。这感觉太多了点击,我宁愿通过控制台界面。但是,当我尝试这一点,它不更新变量:在Pycharm调试器中更改变量
>>> filename
Out[6]: 'a'
>>> filename='b'
>>> filename
Out[8]: 'a'
有没有办法通过控制台界面来更改这些类型的变量?
当我在Pycharm中调试我的Python代码时,我经常想更改一些由原始代码设置的变量。
我可以通过“调试器”选项卡执行此操作,单击相应的变量并使用“设置值”功能对其进行更改。这感觉太多了点击,我宁愿通过控制台界面。但是,当我尝试这一点,它不更新变量:在Pycharm调试器中更改变量
>>> filename
Out[6]: 'a'
>>> filename='b'
>>> filename
Out[8]: 'a'
有没有办法通过控制台界面来更改这些类型的变量?
不幸的是,您无法通过可以在调试会话中弹出的控制台执行此操作。您只能通过调试选项卡更改内容,右键单击并更改它。不幸的是,但事实如此。
你完全可以做到这一点。当在断点处停止:
注:interactiv如果你关闭按钮和程序结束时,e控制台回显命令(图像中带C的行)会消失,这有点奇怪。我经常想复制我输入的命令。
这对我有用。谢谢。 –
@ Jan-Willem如何将此答案标记为正确? – Mike
看起来像一个错误,上面的答案显示可以操纵已经存在的对象的状态,但是似乎不可能将新的值(或对象)赋给变量本身。
见澄清如下片段:
>>> 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
的问题已经上报PyCharm问题跟踪早在2013(see the link)。 人们报告说,自从PyCharm 3出现这个问题后,有人提出它可能是一个python问题,而不是PyCharm,但它不清楚为什么。
无论如何,行为是令人困惑的,至少应该在尝试调试时考虑到 - 直到它被修复。
试图通过范围,例如, locals()[“filename”] =“b”'或'globals()[“filename”] =“b”'(取决于它是什么类型的变量)或'setattribute(yourmodue,“filename” “b”)'。 –
@qarma文件名变量确实存在于'locals()'中,但'locals()[“filename”] =“b”'没有任何作用。 –
'locals()。update(filename =“b”)''? –