如何添加 Python 对象的自定义 Visual Studio 调试视图?

How to add custom Visual Studio debug view of Python object?

我想在 Visual Studio 2015(Python 工具)调试期间添加 Python openpyxl ReadOnlyCell 对象的有用可视化。我阅读了 natvis files,但它们似乎只适用于 C++ 项目。例如,下面的屏幕截图显示了 ReadOnlyCell 在 Autos window 中的样子。我想在列中显示 value 属性(例如下面的单元格 0 为 6000),而不必单独导航到每个单元格。

似乎有一种方法可以通过编辑 PythonDkm.natvis file 添加 Python 对象可视化。我找到了该文件,但我不明白如何向其中添加自定义 class。如有任何帮助,我们将不胜感激!

您应该在 ReadOnlyCell class 上定义 __repr__。这是首先显示的内容,然后您可以展开以查看其余值。

例如:

class ReadOnlyCell:
    ...
    def __repr__(self):
        return f"{type(self).__name__}(value={self.value})"

将显示为:

Name     Value                           Type
[0]      ReadOnlyCell(value=6000)        ReadOnlyCell

旁白:PythonDkm.natvis 文件用于混合 Python/C 调试。它包含用于查看原始 Python 对象的 natvis 定义,并且对常规 Python 调试没有影响。