Hintsを使ったより良いコードを書くためのコツ2019.09.24AI(機械学習)ブームが続いていることもあって最近はプログラム言語のPythonが注目を集めていますよね。Pythonはそのわかりやすい文法からプログラミング初心者に適した言語と言われています。Hintsという仕組みによって、型アノテーションをつけることが可能になりました。Pythonにおける型アノテーションとは、関数の引数や戻り値などに入るデータのデータ型に注釈を与える機能です。注釈と呼んでいるのは、実際に異なるデータ型が与えられたとしても特に実行には影響せず、そのまま実行されるためです。ざきこのように少し癖のある仕組みですが、使いこなすことでプログラムの可読性を大きく高めることができるので、簡単に紹介していきます。HintsをマスターすることはPython初心者を卒業するのに大いに役立つでしょう。本記事ではPython3.7以降での実行を想定しています。本記事に出てきたコードはGitHubから見ることが出来ます。Hintsをつけていきます。Hintsをつけることができます。Hintsがあることの最も大きな利点は、その関数が予想しているデータ型が明確になることです。greetingの場合は引数nameに文字列(string)型が入り、文字列型を返す関数であることが一目でわかります。greetingのような簡単な関数であれば型のアノテーションがなくとも容易にデータ型は想像できますが、もう少し長い関数で引数の数も増えてくるとそのようにはいきません。それが他のチームメンバーが書いたものであれば、さらに理解は難しくなります。Hintsで、予想される引数と戻り値がわかればコードの意味を理解するのに大きな助けとなります。Hintsをつけることが出来ます。100print(number)実行結果100個人的には全ての変数に型をつけるのは煩わしい(可読性が下がる恐れがある)のであまり用いませんが、データ型がすぐに理解しがたい変数の場合は使用することで他者(将来の自分を含む)のコードリーディングの理解を手助けすることが出来ます。Hintsをより便利にするtypingパッケージが組み込まれています。Hintsを書けます。None:print(fruit_list)この他にも呼び出し可能なオブジェクトを表すCallableや、イテラブルなオブジェクトを表すIterableというオブジェクトも用意されています。frutis_list)その他詳しい説明はPythonの日本語公式ドキュメントなどを参考にしてください。Hintsによってつけられた型アノテーションに関しては正しいデータが与えられているかをチェックすることが出来ます。Pythonmypyというパッケージを用いるので、以下のコマンドでインストールします。mypy先ほど作成したgreetingという関数に正しく文字列を与えた場合のexample_success.pyと、正しくない入力であるint型を与えた場合のexample_error.pyの両方をmypyで型チェックしてみます。example_success.pyこの場合は全てのデータ型が正しく入力されているので標準出力には何も出力されません。次は誤った入力であるint型を入れているファイルをmypyで型チェックします。"str"上記のようにエラーが吐かれました。「5行目で呼ばれているgreetingという関数の1つ目の引数はstr型を予想しているのに、int型が入ってきたよ。」というエラーの内容が書かれており、見事に関数の予想しない使用を事前にチェックできました。Hintsとmypyによる型チェックを行っておくと、大きなプロジェクトになっても関数などの予想されていない使用を防ぐことができ、安全に開発を進めることが出来ます。Hintsについて紹介してきました。Hints単体では少し扱いに癖がありますが、mypyなどと組みわせることで可読性の高さと安全な開発とを同時に得ることができる素晴らしい機能です。Hintsを知らなかった人や知っていたが使ったことのないPython初心者の人は、これを機に試してみて、さらに美しいコードが書けるようになりましょう。===当サイト(AIZINE)を運営している大阪の人工知能の開発会社お多福ラボでは、AI(人工知能)の勉強会を開催していますので興味のある方はぜひお越しください。コピーコメントをどうぞコメントを書き込むコメントをキャンセルメールアドレスが公開されることはありません。・URLが入ったコメントは破棄されますコメント名前サイトざきAIZINE(エーアイジン)同じジャンルの記事AIエンジニアを目指すあなたは必須!Pythonの入門セミナーとはスキルアップに最適!Pythonの資格試験の問題・難易度を徹底解説Pythonの標準入力と出力がわかる!input関数を勉強しようAIに適したプログラミング言語「Python」を学べるサイト5つデータ分析を独学で学ぶなら!おすすめ参考本まとめ(Python編)ノンプログラマのためのPythonを勉強できる学習サイト一覧エンジニア必見!キャリアアップするなら取得したいpythonの資格とはPython入門者専用!リストの基本とお役立ちメソッドを整理してみたこの記事を読んだ人におすすめコメントをどうぞコメントを書き込むコメントをキャンセルメールアドレスが公開されることはありません。Learning(機械学習)に必要なPCのスペックってどれくらい?2019.09.05AI(人工知能)ニュース惚れてまうやろー!つい見とれてしまう美人受付ロボットベスト3!2019.07.07ライフスタイル次はあなたがマイクロチップ人間に!気になる値段・痛み・副作用2018.07.112019.02.27ライフスタイルSNS要注意。検索トップタイトルとURLをコピーしました。