我研究了调整对象在中的显示方式的可能性“变量窗格” https://www.jetbrains.com/help/pycharm/debug-tool-window-variables.html of the “调试工具窗口” https://www.jetbrains.com/help/pycharm/debug-tool-window.html。供我自己使用并尝试解决另一个问题当子类化 str 时在 Pycharm 调试器中显示类属性 https://stackoverflow.com/questions/54343556我认为这完美地体现了这一点,它表明一个类在“变量窗格”中的显示方式完全不同,只是因为它继承自 string。
我可以解决这个问题吗?
简单的答案是:做不到(目前)。 PyCharm 调试器会自动决定如何在“变量窗格”中显示无法使用设置从 IDE 内部进行配置的对象。
此问题中的具体情况是按声明顺序而不是按字母顺序显示属性。这个问题与以下选项类似File
>
Settings
>
Build, Execution, Deployment
>
Debugger
>
Data Views
>
Sort values alphabetically
但这是针对变量内部的值顺序(例如,它对未排序的元素进行排序)set
按字母顺序显示) - 不是范围内的属性顺序。
这可能是我发现的 PyCharm 调试器的唯一限制。有一些不错的替代方案,但不具有与“变量窗格”相同的便利性:
- Use the “手表窗格” https://www.jetbrains.com/help/pycharm/debug-tool-window-watches.html- 允许完全控制您所看到的内容和顺序。它的缺点是必须设置手表。
- Use 评估表达 https://www.jetbrains.com/help/pycharm/evaluate-expression.html缺点是必须被调用。
- Use 控制台选项卡 https://www.jetbrains.com/help/pycharm/debug-tool-window-console.html.
最后,“也许有可能”自定义“变量窗格”的显示,但我认为这始终是一种黑客行为,而不是正常的用例。如果我们注意到调试器是如何调用的,我们可以检查如何pydevd.py https://github.com/JetBrains/intellij-community/blob/master/python/helpers/pydev/pydevd.py已实现及其接受的命令行参数。也许有一个未记录的 CLI 参数来配置“变量窗格”显示。
然而,乍一看这个问题的复杂性pydevd.py
如果需要,模块足以简单地使用“手表窗格”作为替代。
C:\path_to_interpreter\python.exe
"C:\Program Files\JetBrains\PyCharm 2019.3.2\plugins\python\helpers\pydev\pydevd.py"
--multiproc --qt-support=auto --client 127.0.0.1 --port 51753 --file
C:/path_to_your_module.py
Connected to pydev debugger (build 211.7142.13)