私たちエンジニアは「実行して初めてエラーになる」まで待ちたくありません。コードを書いている最中に「あ、型が違うよ」とエディタに怒ってほしいです。
VS Codeを使って、PythonをJavaやC#のような「静的型付け言語に近い感覚(コンパイルエラーが出る感覚)」で書くための、現代的(モダン)かつ鉄板の構成を紹介します。
この2つを入れるだけで、開発体験が劇的に変わります。
1. 必須の脳みそ: Pylance (パイランス)
Microsoft公式のPython拡張機能を入れると、自動でついてくることが多いですが、これが型チェックの「本体」です。
-
何をしてくれるか:
-
def func(a: int):と定義したのにfunc("hello")と書くと、実行前に赤線(エラー)を出してくれます。 -
変数の型推論、定義へのジャンプなどが爆速になります。
-
-
【超重要】設定を変える:
デフォルトだと設定が優しすぎる(off)ため、型チェックが効きません。以下の設定をONにしてください。
-
VS Codeの設定を開く (
Ctrl + ,orCmd + ,) -
検索バーに
type checking modeと入力 -
Python > Analysis: Type Checking Modeをoffからbasicに変更してください。-
Basic: 一般的な型ミスを指摘してくれます(推奨)。
-
Strict: 厳格にチェックします(既存プロジェクトでやるとエラーだらけになるので、慣れてからでOK)。
-
-
※チーム開発では.vscodeを共有することで、わざわざ各メンバーが手動で設定する必要がなくなります。別日の記事で書きたいと思います。
2. 爆速の守護神: Ruff (ラフ)
今、Python界隈で最もホットな「モダン」ツールです。これまで Flake8(構文チェック)や isort(import順序整理)、Black(フォーマッタ)など複数のツールを組み合わせていたのを、これ1つで、しかも100倍速くやってくれます。
-
何をしてくれるか:
-
使っていない変数の警告 (
Unused variable) -
スタイルの統一
-
Import文の自動整列
-
-
導入方法:
-
VS Codeの拡張機能マーケットプレイスで「Ruff」と検索してインストールするだけです。
-
保存時に自動修正する設定(Format on Save)を入れておくと幸せになれます。
-
3. (参考) 実行時にも厳格に守りたいなら: Pydantic
これはVS Codeの拡張機能ではなく、Pythonのライブラリです。
型ヒントはあくまで「開発時のチェック」ですが、Pydantic を使うと、「実行時にデータが入ってきた瞬間」に型チェックをしてくれます。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<span class="hljs-keyword">from</span> pydantic <span class="hljs-keyword">import</span> BaseModel <span class="hljs-comment"># データの設計図を作る</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span>(<span class="hljs-params">BaseModel</span>):</span> <span class="hljs-built_in">id</span>: <span class="hljs-built_in">int</span> name: <span class="hljs-built_in">str</span> <span class="hljs-comment"># データを入れる</span> <span class="hljs-comment"># idに文字列の "123" を入れても、勝手に int の 123 に変換してくれたり、</span> <span class="hljs-comment"># 変換できない異常データなら即座にエラー(Exception)を吐いてくれます。</span> user = User(<span class="hljs-built_in">id</span>=<span class="hljs-string">"123"</span>, name=<span class="hljs-string">"Taro"</span>) |
「外部からデータを受け取る処理」では、このライブラリを使って入り口でガードするのが現在のベストプラクティスです。
まとめ:最低限やると良いこと
まずは以下を確認してみてください。
-
拡張機能:
Python(Microsoft公式) とRuff(Astral Software) が入っているか確認。 -
設定:
Type Checking Modeをbasicに設定。
これで、型が違うコードを書くとすぐに赤線が出るようになります。
