繁体   English   中英

在 Pycharm 调试器中更改变量

[英]change variable in Pycharm debugger

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

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

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

使用魔法按钮

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

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

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

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

请参阅以下片段以进行说明:

>>> 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 问题跟踪器(请参阅链接)。 人们报告说该问题自 PyCharm 3 以来就存在,有些人认为这可能是 Python 问题而不是 PyCharm,但尚不清楚原因。

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

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

出于逃避我的原因,明显的“更改值/F2)允许您插入一个值,但不会将其持久化到基础变量/属性

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM