IntelliSense に仕事してもらう Python の書き方
まだ明けません、おめでとうございます。やっぱり最強の Python エディタは Visual Studio だと思います。というわけで、今回は Python Tools for Visual Studio(PTVS) で型を明示して IntelliSense に働いてもらおうというお話です。
PTVS といえば
対話コンソール、強力なデバッグ機能、そして IntelliSense です。適用に変数をつくれば
のように勝手に型を認識して、 . と入力すればさっとメンバーを表示してくれます。
でも関数の引数の型はわからない
このように引数は見事に <unknown type> になってしまいます。関数を使っていくうちに学習していってくれるみたいですが、使い方によっては大量の謎候補が生まれて馬鹿になっていきます。そこで、型を自分で指定してあげれば解決なわけですが、そのやり方を紹介します。
1. assert を使う
assert isinstance(hoge, HogeType)
のように書くと hoge は HogeType と確定するので、こんな感じに IntelliSense を利用することが出来ます。
2. if を使う
assert と同じ要領で
if isinstance(hoge, HogeType):
とすると、ブロック内で IntelliSense が利くようになります。
またこのように関数を使うときは分岐すべてが候補として出てきます。
うまくいかない例
assert の後や if のブロック内でしか型が確定していないので、
のように if not isinstance
で弾くということはできないみたいです。