2

我想在Visual Studio 2015(Python工具)的調試過程中添加一個Python對象的有用可視化對象。我讀入natvis files,但它們似乎只適用於C++項目。例如,下面的截圖顯示了在Autos窗口中ReadOnlyCell的外觀。我想在列中顯示value屬性(例如,下面的單元格0爲6000),而不必單獨導航到每個單元格。如何添加Python對象的自定義Visual Studio調試視圖?

似乎有一種方法可以通過編輯PythonDkm.natvis file來添加Python對象可視化。我找到了該文件,但我不明白如何將自定義類添加到該文件中。任何幫助,將不勝感激!

enter image description here

+1

我沒有找到支持python的信息,但我會與其他成員討論,如果我得到任何信息,我會在這裏分享。 –

回答

2

你應該在你的ReadOnlyCell類中定義__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調試。

+1

相反,'__repr__'僅適用於僅用於Python的調試器 - 如果使用混合的native/Python調試,則爲其知道的那些類型提供自己的repr,併爲其他所有類型提供硬編碼的通用表示(類型名稱+地址)。 –

+0

它完美的作品,謝謝你Zooba。對於那些尋找確切步驟的人:刪除' \ Lib \ site-packages \ openpyxl'中的緩存文件,編輯' \ Lib \ site-packages \ openpyxl \ cell \ read_only.py'包含'__repr__'函數(I只是使用了'return str(self.value)')。可能不是直接編輯安裝有'pip'的庫的最佳實踐,但是對這個單元的快速表示確實有幫助。 – Aralox

相關問題