2

私は、Visual Studio 2015(Pythonツール)でデバッグ中にPython openpyxlReadOnlyCellオブジェクトの有用な視覚化を追加したいと考えています。私はnatvis filesを読んでいますが、それらはC++プロジェクトでしかないようです。たとえば、次のスクリーンショットは、「自動車」ウィンドウのReadOnlyCellの外観を示しています。列内にvalueのプロパティ(たとえば、下のセル0に6000など)を表示したい場合は、各セルに個別にナビゲートする必要はありません。PythonオブジェクトのカスタムVisual Studioデバッグビューを追加するには?

PythonDkm.natvis fileを編集してPythonオブジェクトの視覚化を追加する方法があるようです。ファイルが見つかりましたが、カスタムクラスを追加する方法がわかりません。どんな助けもありがとう!

enter image description here

+1

私はPythonをサポートする情報を見つけませんでしたが、私は他のメンバーと話し合います。情報があれば、私はここでそれを共有します。 –

答えて

2

あなたReadOnlyCellクラスに__repr__を定義する必要があります。これが最初に表示されるもので、次に展開して残りの値を表示することができます。例えば

:別に

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

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

は次のように表示されるPythonDkm.natvisファイルが混合のPython/Cデバッグのためのものです。生のPythonオブジェクトを表示するためのnatvis定義が含まれており、Pythonの通常のデバッグには影響しません。

+1

逆に、 '__repr__'はPython専用のデバッガ用です。 - 混在したネイティブ/ Pythonのデバッグが使われている場合は、それが知っている型に対して独自のreprを提供し、それ以外の場合はハードコーディングされた汎用表現(型名+アドレス)を提供します。 –

+0

それは完璧に動作します、Zoobaありがとうございます。正確な手順を探している人は: ' \ Lib \ site-packages \ openpyxl'のキャッシュファイルを削除し、' __repr__'関数を含めるには ' \ Lib \ site-packages \ openpyxl \ cell \ read_only.py'を編集します単に 'return str(self.value)'を使用しました)。おそらく 'pip'でインストールされたライブラリを直接編集するのはベストプラクティスではありませんが、この素早く表現されたセルが本当に役立ちます。 – Aralox

関連する問題