名前修飾した変数のデバッグ

Python VScodeデバッグ時にちょっとハマったこと。

 

 
__size = self._strategy_config['lotsize'] - self.current_pos

 

右辺式で値は正しく取れているのに、

変数 __size をウォッチ式で値確認しようとしてもNoneになる。

 

なんでや?

 

変数名の__は名前修飾というPython言語仕様らしい。

外部から直接この変数名でそのまま参照ができないようにする。

(private変数の代わりとして使われる。)

 

これは内部的に、_クラス名__size という用に変換する機能らしい。

よって、ウォッチ式を編集し、上記の形式にしてやれば表示することができる。

f:id:bintorooic:20210123232228p:plain

(クラス名 ここでは「MyStrategy」)