1. はじめに
さて、今回のテーマなのですが、ズバリ Python の型についてです!!
Python 標準ではタイプアノテーションという
「ここはこの型だよ~」くらいの意味合いしかないメモ書きを残すことができます。
各種エディタの拡張機能やライブラリを導入することで、より厳密に型を定義することができます。
今回はそんな拡張機能の1つ「Pylance」を使ってみようと思います!
2. 例
こんな感じでよくある足し算をするだけのプログラムを作ってみました。
これを実行してみると・・・
まあもちろん結果は期待通りですね!
ただこの状態だと関数に対して一体どのような型の変数を渡して、どのような型の戻り値を返すのか不明ですよね?
そんなときに活躍するのがタイプアノテーションなのです!!
3. タイプアノテーションをつけてみよう
早速つけてみました!
こういう形だと、int を渡して int が返ってくることが一目瞭然!!
「ふふふ、これでまた安全にしてしまった」
そう思っていた時期が私にもありました。
では例えば、
こんなコードを実行したらどうなるでしょう?
「いやいや、int だって言ってるでしょ!!それじゃエラーになるに決まってるじゃん!!」
「Thank you for watching !!」
実はそうなんです。
Python におけるタイプアノテーションは「型ヒント」であり、それ以上でも以下でもないのです。
よって貫通可能です。
「さよなら、私の安全なPythonライフ」
とここで記事閉じようとしたあなた!!!
この記事のタイトルを忘れましたか?
ここからが本題です!!
4. Pylanceの導入
vscode の拡張機能で検索してもらえれば一瞬で見つかると思います。
拡張機能の設定からTypeChekingModeを変更してあげましょう。今回は一番厳しいstrictにしました。
さてと、これで設定完了!
これで一番最初のコードを見てみましょう!
「なんか赤いニョロニョロおる!!!」
マウスを近づけてみると
怒ってくれるました!!
「怒ってもらえるのってありがたいなぁ~」
そう思いながらタイプアノテーションをつけていきましょう!
無事消えましたね!!
ここまでは予定調和ですね!
さて本題、、
「You Win !!」
これで間違えに気づくことができますね!
ここで注意点!!
さっきのコードを実行してみると
このように実行はできてしまいます。
エラーとして実行を止めてくれるものではないので、実装段階でエラーは潰しておきましょう!
自動で全ソースなどをテストしたい場合はまた別のライブラリを使うことになりますが、それはまた機会があれば解説したいと思います。
なにはともあれ
これで平和が訪れました(フラグ
5. おわりに
いかがでしたか?
今回はPythonのタイプアノテーションにフォーカスして見ましたが、実際チーム開発で安全なコードを書くためにはまだまだ不十分です。
また機会があれば別の観点で解説できればと思います。
皆様も楽しいPythonライフを!!
ロジカルスタジオではエンジニアを募集しています。
積極的に挑戦をさせてもらえる環境に興味がある方はこちらから↓
株式会社ロジカルスタジオ's job postings